Сегодня мы создадим простейшее 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), Вам все равно придется пользоваться командной строкой.
Для того чтобы собрать приложение с помощью командной строки надо:
Рассмотрим создание проекта и сборку приложения с помощью Microsoft Visual C++.
После сборки консольного приложения, его можно запустить на эмуляторе или на целевом устройстве. В рамках этого документа рассмотрим только запуск на эмуляторе. Информация о запуске приложений на конкретных устройствах приведена в документации для соответствующих платформ.
Существует два способа запуска приложения на эмуляторе: можно запустить приложения из командной строки или из 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.