высокохудожественный симбиоз ДМИТРИЙ ТАРАСОВ AKA DEM@N Спецвыпуск: Хакер, номер #071, стр. 071-074-2 CXaObject *xaObj = new CXaObject; CleanupStack::PushL(xaObj); Часто в коде одной функции создается несколько объектов, и после того, как они уже были использованы и больше не нужны, необходимо освободить ресурсы и удалить объекты из CleanupStack, что делается следующим образом: CleanupStack::PopAndDestroy(xaObj); В случае, если после выполнения функции созданные локальные объекты не будут удалены, наша программа аварийно закроется при выполнении. Работа с освобождением ресурсов - очень важный момент при кодинге под Symbian, поэтому рекомендую тщательно изучить соответствующую документацию. [что есть что в Application Framework] У начинающих кодеров под Symbian при созерцании взятого из SDK простейшего примера приложения типа HelloWorld возникает вопрос: «А зачем тут столько файлов и классов?». Действительно, каркас приложения с графическим интерфейсом (консольные приложения под series 60 также можно создавать, но они не представляют никакого интереса) состоит как минимум из четырех классов. Класс application служит для запуска приложения и для создания так называемого документа приложения. Класс document представляет собой движок приложения и создает объект класса интерфейса пользователя. Класс AppUi служит для обработки действий пользователя и команд и представляет наибольший интерес, поскольку именно в этом классе определяют такие любопытные виртуальные функции базового класса «base» как: - HADLEKEYEVENT(), ВЫЗЫВАЕМУЮ ПРИ НАЖАТИИ НА КЛАВИШУ СМАРТФОНА; - HANDLESWITCHONEVENTL(), ОБРАБАТЫВАЮЩУЮ СОБЫТИЯ ПРИ СТАРТЕ СМАРТФОНА; - HANDLECOMMAND(), ВЫЗЫВАЕМУЮ ДЛЯ ОБРАБОТКИ КОМАНД ПОЛЬЗОВАТЕЛЯ. Класс Container требуется для отображения данных на экране смартфона. При разработке собственного приложения целесообразно использовать данный шаблон, который идет с любым SDK и наращивать функциональность указанных классов. [как подружить ПО с родной речью.] Вполне возможно, что ты захочешь использовать в своем приложении надписи и диалоги на русском языке (хотя ориентироваться на отечественного потребителя в большинстве случаев бессмысленно). Все надписи на пунктах меню, диалогах и строки хранятся в файле ресурсов. Для того чтобы вместо абракадабры на экране мобилы отображалась нормальная кириллица, достаточно сохранить этот файл в кодировке utf-8. Разумеется, для этого подойдет наш любимый Блокнот :). [как заставить программу автоматически запускаться при старте телефона.] Как ты, наверное, знаешь, в Symbian нет такого понятия как реестр. Автозагрузки, соответственно, тоже нет. Поэтому для автозапуска приложения обычно приходится извращаться, используя рекогнайзеры - программы, либо части кода проекта, которые служат для связывания определенных типов приложений (текстовые файлы, графика, и т.д.) с определенными программами, служащими для их открытия. Соответственно, если написать рекогнайзер, ставящий в соответствие файл нашей программы приложению, создающему процесс при загрузке телефона (apprun.exe, к примеру), то можно заставить этот процесс запускать нашу прогу :). Кодинг рекогнайзеров - тема довольно обширная, поэтому я не буду углубляться сейчас в детали. Я предлагаю воспользоваться уже готовой разработкой от парней с http://newlc.com. Продукт называется ezboot и представляет собой sis-файл, который легко интегрируется с нашим проектом. Прога эта бесплатна для некоммерческого использования, что очень приятно. На том же сайте есть и исходник для особо интересующихся. Для того чтобы заставить запускаться прогу при старте телефона, потребуется: |