Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #96, ДЕКАБРЬ 2006 г.

Дао Symbian

Дмитрий «Dem@n» Тарасов

Хакер, номер #096, стр. 096-130-2


После установки необходимого инструментария надо разобраться, что есть что в минимальном проекте. Запускай среду и выбирай New Symbian Project в папке Visuall C++ Project. Не забудь задать путь проекта в папке Epoc32. Далее в диалоговом окне выбирай SDK (если их в списке нет, то юзай кнопку Enable/Disable SDK) и указывай тип проекта Classic. Project Template – S60 EIKON Control-Based Application («Hello, World»). После этого жми Finish, и среда сгенерирует тебе кучу разных непонятных классов и файлов в папке проекта.

Предлагаю пройтись по папкам, которые создала студия, и посмотреть, что в них лежит.

- AIF – здесь по умолчанию хранится иконка приложения (в варианте для статусной панели программы и для меню смартфона). Обрати внимание, что, для того чтобы лого программки нормально смотрелось в меню, необходимо для каждой картинки создавать черно-белую маску, где черным будет закрашена видимая (показываемая) часть. Часть картинки, выкрашенная в белый цвет, не отобразится в меню программ, а ее место займет общий фон темы оформления, установленной на смартфоне. Советую подробнее посмотреть документацию по Bitmap и утилите AifTool.

Кроме того, в этой папке еще имеется файл aif-ресурсов приложения, имеющий примерно такой вид:

#include <aiftool.rh>

RESOURCE AIF_DATA

{

app_uid=0x01ff9a56; //UID приложения

num_icons=2; //количество иконок

...

}

- DATA – в этой директории хранятся файлы ресурсов приложения, являющиеся очень важной частью любой GUI-программы для Symbian. В ресурсах определяются строки, пункты и структура меню, внешний вид статусной панели приложения, структура списков и других контролов. Описание любого ресурса начинается с ключевого слова RESOURCE. К примеру, простейшее меню, вызываемое при нажатии левой функциональной кнопки, описывается следующим образом:

RESOURCE MENU_PANE r_symbian3_menu

{

items =

{

MENU_ITEM { command = ESymbian3CmdAppTest; txt = qtn_appl_test; },

MENU_ITEM { command = EAknCmdExit; txt = qtn_appl_exit; }

};

}

MENU_ITEM соответствует каждому новому пункту меню. Здесь command – идентификатор команды, вызываемой при выборе соответствующего пункта меню, а txt – подпись пункта. Ресурс caption’а приложения вынесен в отдельный файл и имеет такой вид: RESOURCE CAPTION_DATA.

{

caption = qtn_app_caption_string; //Подпись приложения

shortcaption = qtn_app_short_caption_string; //Короткая подпись приложения

}

- GROUP – здесь лежат файлы, необходимые для сборки проекта. Наибольший интерес представляет файл с расширением mmp. Это файл описания проекта, из которого линковщик берет все пути подключаемых библиотек, хедеров и т.д. Рекомендую ознакомиться со структурой MMP и почитать документацию.

Хочу обратить внимание на следующий факт: часто при добавлении нового функционала в приложение необходимо использовать какой-либо класс, требующий подключения определенного хедера и библиотеки. Соответственно, эту библиотеку нужно прописывать в mmp-файл следующим образом: LIBRARY megalib.lib. При этом в VS наблюдается такой глюк: при сборке проекта, если она до этого уже производилась, иногда появляется сообщение об ошибке, в котором говорится о том, что требуемая библиотека не подключена, хотя это не так! В подобных случаях нужно делать ReBuild Solution. Если и это не помогает, можно попробовать реимпортировать свой проект. То же самое касается и файлов ресурсов: если ты видишь, что изменения в них никак не отражаются на сборке, сделай ребилд.

Назад на стр. 096-130-1  Содержание  Вперед на стр. 096-130-3