Файлы проекта

Сегодня мы создадим простейшее HelloWorld приложение. Оно может работать на любом Symbian OS устройстве. Проект Symbian OS приложения состоит из нескольких файлов: собственно исходников (.cpp и .h), файлов описания проекта (.mmp) и файлов описания компонент (bld.inf). Могут потребоваться и другие файлы.

Файл описания проекта необходим для корректной работы утилитыbldmake. Имя файла проекта должно соответствовать имени приложения. Другими словами, если мы разрабатываем программу HelloWorld.exe, файл описания проекта должен называться HelloWorld.mmp.

// HelloWorld.mmp
TARGET HelloWorld.exe
TARGETTYPE exe
UID0
SOURCEPATH.
SOURCE HelloWorld.cpp
USERINCLUDE.
SYSTEMINCLUDE \Epoc32\include
LIBRARY euser.lib bafl.lib efsrv.lib
 

В отличие от файла описания проекта, файл описания компонент всегда называется одинаково:bld.inf. В этом файле указывается список проектных файлов:

// файл bld.inf
PRJ_MMPFILES
 
HelloWorld.mmp

Создадим простейшее консольное приложение. Пусть оно выводит на экран строку "Hello world!", дожидается нажатия клавиши и закрывается.

<b>Листинг исходного кода HelloWorld.cpp</b>
 
Листинг исходного кода HelloWorld.cpp
#include <e32base.h>
#include <e32cons.h>

_LIT(KTxtEPOC32EX,"EPOC32EX");
_LIT(KTxtExampleCode,"E32 SDK Example Code");
_LIT(KFormatFailed,"failed: panic code=%d");
_LIT(KTxtOK,"ok");
_LIT(KTxtPressAnyKey," [press any key]");
 
LOCAL_D CConsoleBase* console;// запишите сюда свое сообщение
LOCAL_C void doExampleL();// именно это функция будет выполнять требуемые нам действия
 
//*********************************************//
// функция, осуществляющая печать //
//*********************************************//
LOCAL_C void doExampleL()
{
_LIT(KHelloWorldText,"Hello world!\n");
 
// создаем консольный объект
console=Console::NewL(KTxtExampleCode,TSize(KConsFullScreen,KConsFullScreen));
CleanupStack::PushL(console);
// печатаем строку "Hello world"
console->Printf(KHelloWorldText);
// печатаем строку "press any key"
console->Printf(KTxtPressAnyKey);
// дожидаемся, пока пользователь нажмет кнопку
console->Getch();
CleanupStack::PopAndDestroy();// закрываем консоль
}
 
//************************//
//* главная функция *//
//************************//
TInt E32Main()
{
__UHEAP_MARK;
CTrapCleanup* cleanup=CTrapCleanup::New();// получаем чистый стек
TRAPD(error,doExampleL());// завершаем инициализацию и выполняем пример
__ASSERT_ALWAYS(!error,User::Panic(KFormatFailed,error));
delete cleanup;// удаляем стек
__UHEAP_MARKEND;
 
return0;
}
</e32cons.h></e32base.h>

Компиляция

Существует два пути сборки Symbian OS приложения. Первый - использование утилит командной строки. С помощью этого метода вы можете собрать приложение для любого целевого устройства, поддерживаемого SDK (ARM4 и THUMB поддерживаются не всеми SDK). Второй путь - использовать Microsoft Visual Studio[Прим. переводчика: или любую другую IDE. В рамках статьи рассматривается только Microsoft Visual Studio.]. Этот метод кажется мне более предпочтительным, поскольку текстовый редактор и компилятор встроены в удобную графическую среду, что значительно упрощает процесс разработки и отладки приложения. Для отладки приложения Microsoft Visual Studio использует собственную WINS платформу. При переносе программы на целевую платформу (например, на armi или thumb), Вам все равно придется пользоваться командной строкой.

Для того чтобы собрать приложение с помощью командной строки надо:

  • Перейти в папку, содержащую .mmp файл проекта. Убедиться, что в этой же папке лежит файл bld.inf.
  • Выполните командуbldmake bldfiles. В результате ее выполнения будет создан файлabld.bat, который содержит информацию, полученную из .mmp файла проекта. (Обратите внимание, что после изменения .mmp файла нужно снова выполнять команду bldmake.)
  • Выполните командуabld build wins udeb. Она создает версию приложения с отладочной информацией для WINS платформы.
  • Выполните командуabld build armi urel. Она создает релиз версию приложения для целевого устройства.
  • После создания exe файла, его нужно скопировать в папку Epoc32\release\wins\udeb\.


Рассмотрим создание проекта и сборку приложения с помощью Microsoft Visual C++.

  • Перейти в папку, содержащую .mmp файл проекта. Убедиться, что в этой же папке лежит файл bld.inf.
  • Выполните командуbldmake bldfiles. В результате ее выполнения будет создан файлabld.bat, который содержит информацию, полученную из .mmp файла проекта. (Обратите внимание, что после изменения .mmp файла нужно снова выполнять команду bldmake.)
  • Выполните командуabld makefile vc6. В результате будет создан файл проекта и файл рабочей среды (.dsp и .dsw). Эти файлы можно использовать в Visual C++ 6.0.
  • Запустите Microsoft Visual C++ 6.0 и выберите командуOpen Workspace из менюFile.
  • Выберите файл с расширением .dsw в папке WINS\ вашего проекта.
  • Выберите командуBuild илиRebuild All из менюBuild. Будет выполнена сборка приложения.


Запуск приложения

После сборки консольного приложения, его можно запустить на эмуляторе или на целевом устройстве. В рамках этого документа рассмотрим только запуск на эмуляторе. Информация о запуске приложений на конкретных устройствах приведена в документации для соответствующих платформ.

Существует два способа запуска приложения на эмуляторе: можно запустить приложения из командной строки или из IDE (в данном случае из Microsoft Visual C++ 6.0).

В случае запуска из командной строки, скопируйте созданный файл helloworld.exe в папку Epoc32\release\wins\udeb\, затем перейдите в эту папку и запустите файл helloworld.exe. Для запуска приложения из Microsoft Visual C++ 6.0 нужно выполнить командуExecute HELLOWORLD.exe из менюBuild. Оба этих способа приводят к одному результату: через несколько секунд запустится окно эмулятора, и Вы увидите картинку:


В основе статьи лежит документ "Symbian OS: Getting Started with
C++ Application Development
", найденный на сайтеForum.Nokia.com.
Перевод:aRix.




Наши соцсети

Подписаться Facebook Подписаться Вконтакте Подписаться Twitter Подписаться Google Подписаться Telegram

Популярное

Ссылки

Новости [1] [2] [3]... Android/ iOS/ J2ME[1] [2] [3]) Android / Архив

Рейтинг@Mail.ru Яндекс.Метрика
MobiLab.ru © 2005-2018
При использовании материалов сайта ссылка на www.mobilab.ru обязательна