Средства разработки приложений


Операционная система PalmOS для программиста - часть 15


Согласно этому стандарту за всеми хаками в системе следит Менеджер Хаков. Это обычное приложение (например X-Master) в котором можно посмотреть список всех хаков, настроить их, и активизировать.

Программирование хаков требует более глубокого знания системы.

  • Пример Разработки Приложения для PalmOS

    Рассмотрим пример простого приложения - example1.prc(1,5кб) оно состоит из одной формы. На Форме расположена кнопка , надпись, и текстовое поле, к форме прикреплено меню . При нажатии на кнопку появляется сообщение. Проект приложения состоит из 4х файлов:

    Example1.c – исходный код на языке С.
    Example1.h – имена и номера елементов формы
    Example1.rcp – описание ресурсов приложения (форма, меню, кнопка, диалог сообщения).
    Makefile – для сборки приложения.
    файл example1.c #include <PalmOS.h> #include "hw.h" static FormPtr gpForm; Boolean Form1_HandleEvent(EventPtr event) { switch(event->eType) { case ctlSelectEvent: if ( event->data.ctlEnter.controlID == Button1) FrmCustomAlert(Alert1, "MessageBox !", "", ""); break; case menuEvent: if ( event->data.menu.itemID == IDM_about) FrmCustomAlert(Alert1, "This is Example", "", ""); break; case frmOpenEvent: gpForm=FrmGetActiveForm(); FrmDrawForm(gpForm); break; case frmCloseEvent: FrmEraseForm(gpForm); FrmDeleteForm(gpForm); break; default: return false; } return true; } static Boolean ApplicationHandleEvent(EventPtr event) { FormPtr frm; Boolean handled=false; switch(event->eType) { case frmLoadEvent: frm = FrmInitForm (event->data.frmLoad.formID); FrmSetActiveForm (frm); FrmSetEventHandler(frm , Form1_HandleEvent); handled = true; break; } return handled; } UInt32 PilotMain(UInt16 launchCode, void *cmdPBP, UInt16 launchFlags) { EventType event; UInt16 error; if(launchCode==sysAppLaunchCmdNormalLaunch) { FrmGotoForm(Form1); do { EvtGetEvent(&event,evtWaitForever); if(!SysHandleEvent(&event)) if(!MenuHandleEvent(0,&event,&error)) if(!ApplicationHandleEvent(&event)) FrmDispatchEvent(&event); } while(event.eType!=appStopEvent); FrmCloseAllForms(); } return 1; } файл example1.rcp #include "hw.h" FORM ID Form1 AT (0 0 160 160) FRAME USABLE MENUID MenuBar1 BEGIN TITLE "Example 1" LABEL "This is an example" AUTOID AT (10 10+5) FONT 1 LABEL "of small GUI programm" AUTOID AT (PREVLEFT PREVBOTTOM+5) FONT 2 FIELD ID IDB_Edit1 AT (PREVLEFT PREVBOTTOM+5 110 20) MAXCHARS 50 UNDERLINED FONT 2 BUTTON "Hello" ID Button1 AT (10 80 AUTO AUTO) END MENU ID MenuBar1 BEGIN PULLDOWN "Help" BEGIN MENUITEM "About" ID IDM_about "A" END END ALERT ID Alert1 INFORMATION BEGIN TITLE "Example 1" MESSAGE "^1 ^2 ^3" BUTTONS "Ok" END Файл example1.h #define Form1 1000 #define Button1 1003 #define Edit1 1006 #define MenuBar1 1000 #define Alert1 1102 #define IDM_about 1001 #define IDB_Edit1 1002 makefile CC=m68k-palmos-gcc.exe PILRC=pilrc.exe BUILDPRC=build-prc OBJRES=m68k-palmos-obj-res GRC=*.grc CFLAGS = -O2 all: example1 example1: example1.bin resources ls *.grc|$(BUILDPRC) example1.prc Test -v 1.0 *.bin *.grc example1.bin: example1.o $(CC) -o $@ $< $(OBJRES) $@ example1.o: example1.c $(CC) $(CFLAGS) -c $< resources: example1.rcp $(PILRC) $< clean: rm *.bin rm *.o rm *.grc

    Ссылки:

    - много исходников по разным темам

    - ядро PALMOS

    - взлом софта под палм

    От Автора :
    По мере того как я работаю с PalmOS и PocketPC я стараюсь обновлять эту работу . Самая свежая версия всегда лежит на http://www.dekart.com/publ/PalmOS%20referat_6.pdf .




    Начало  Назад  



    Книжный магазин