Отправляет email-рассылки с помощью сервиса Sendsay

Школа программирования

  Все выпуски  

Школа программирования


Настроим средства разработки.

Cистема меню в PocketPC скопирована с большой Windows, и там где мышкой попасть легко, попасть точно пальцем сложно. Поэтому возникла идея написать более удобный интерфейс для какой-нибудь программы.

В качестве программы думаю взять TCPMP и написать для него новый интерфейс. Звучит хорошо:) Что будем использовать для написания интерфейса? Было бы неплохо провести полный анализ, но у меня на ум пришел только flash (если у вас будут идеи по поводу другого - пишите). Писать сразу интерфейс без пробного проекта - мысль не очень хорошая, хотя бы потому, что не очень понятно что и в каком объеме будет написано. Поэтому для обстрела напишем чего-нибудь попроще. В качестве первого проекта возьмем проигрыватель flash.
Для того, чтобы писать для PocketPC сейчас можно использовать EVC4(SP4) - Embedded Visual C++ 4 с сервис паком под номером 4, а можно Visual Studio 2005. Я буду писать под EVC4 (так как он у меня есть, да к тому же бесплатен, в отличие от Visual Studio 2005). Если будет желание, скомпилируйте нижеследующее под Студией и пришлите мне, а я выложу здесь этот проект. Кроме EVC4 нам понадобиться POCKET PC 2003 SDK, эмулятор (хотя бы с одним образом) от майкрософта и ActiveSync 4.5. Нужно потратить немного времени, чтобы установить и настроить все это хозяйство:) Установить я думаю у Вас получиться и без меня (если не получиться - пишите), а вот для настройки разрешите дать парочку советов.
В EVC4 лучше снять галочку загрузки проектов на устройство при компиляции (Tools->Options->Download->Always download binary to the target).
В зависимости от того, какую версию эмулятора вы поставите могут создаваться ярлыки запуска или нет. Если ярлыки не создались, создайте их сами. В принципе не важно, где будут находится файлы эмулятора и образов. У меня эмулятор установлен в C:\Program Files\Microsoft Device Emulator\1.0, а структура образов такая
D:\Windows Mobile Image\WM2003SE
D:\Windows Mobile Image\WM6
Для каждого образа понадобятся два ярлыка : для начальной инициализации, которая, кстати, проходит достаточно долго и для быстрой загрузки образа. Для ярлыка начальной инициализации в строке "Объект" (Правая кнопка по ярлыку->Свойства) должна быть подобная строчка


"C:\Program Files\Microsoft Device Emulator\1.0\DeviceEmulator.exe" PPC_2003_SE_WWE_ARMv4.bin /memsize 64 /s "wm2003se.dess" /skin Pocket_PC.xml /p /funckey 193

А в строке "Рабочая папка" - такая (если у Вас образ - PPC_2003_SE_WWE_ARMv4.bin находится по этому адресу)


"f:\Windows Mobile Image\WM2003SE\"

Для ярлыка быстрой загрузки образа строчка "Объект" должна быть такая


"C:\Program Files\Microsoft Device Emulator\1.0\DeviceEmulator.exe" /s wm2003se.dess /nosecurityprompt

Строка "Рабочая папка" остается без изменений


"f:\Windows Mobile Image\WM2003SE\"

После создания ярлыков нужно запустить эмулятор через ярлык начальной инициализации. Когда система загрузилась, закройте эмулятор через меню (File->Save State and Exit). У Вас создался файл с расширением .des (f:\Windows Mobile Image\WM2003SE\wm2003se.dess) - это и есть сохраненный настроенный образ. Именно его мы будем запускать все остальное время через второй ярлык - ярлык быстрой загрузки образа. При этом все изменения, которые мы делали в образе (добавляли, удаляли файлы, устанавливали программы и т.д.) остануться.
Так, эмулятор запущен. Теперь соединим его с ActiveSync. Для этого нужно в параметрах подключения разрешить подключаться через DMA (Файл->Параметры подключения->Разрешить подкл. к след. объектам (поставить галочку если ее нет) и из списка выбрать DMA). Если у Вас не оказалось этого пункта, то надо зарегистрировать SerDMAASPlugin.dll, находящийся в папке эмулятора (regsvr32 SerDMAASPlugin.dll)
Для подключения эмулятора к ActiveSync необходимо запустить Device Emulator Manager ( файл dvcemumanager.exe), который находится в папке с эмулятором. Если эмулятор запущен через один или другой наш ярлык, то он появится в списке устройств Device Emulator Manager(в моем случае как GIUD). Щелкнуть по нему правой кнопкой мыши в меню выбрать Cradle. Отключается эмулятор от ActiveSync путем выбора в том же меню пункта Uncradle.
Когда эмулятор подключится к ActiveSync и спросит какую связь установить ("Стандартная связь" или "Связь Гость") лучше выбрать Гость.

Мы подходим к концу этой части. Осталось запустить EVC4, создать проект (File->New->Projects->WCE Pocket PC 2003 MFC AppWizard (exe), в поле Project name напишите название проекта - например sample). На вопрос какое приложение Вы хотите создать (What type of application would you like to create?) выберите Single document. На вопрос какие опции Вы будите использовать (What features would you like to include?) выберите ActiveX Controls.
Когда проект создан его можно загрузить в эмулятор (эмулятор должен быть подключен к ActiveSync). Для этого на тулбаре EVC4 выставите следующие значения (Pocket PC 2003 Win32 - WCE ARMV4 Realese - Pocket PC 2003 Device) - так мы указываем что будем компилировать релиз нашей программы и загружать его в устройство. В нашем случае это устройство будет эмулятор. Нажимаем на красный восклицательный знак на тулбаре и вуаля! - проект загружен в эмулятор и выполняется там как на реальном покете.
Также можно и отлаживать прокт: вместо WCE ARMV4 Realese поставить WCE ARMV4 Debug, поставить точку останова через F9 и запустить отладку через F5. И последнее: программы в Windows Mobile по умолчнию не закрываются при нажатии на крестик, а сворачиваются, поэтому их надо закрывать "вручную":). Для этого в эмуляторе выберите Start->Settings->вкладка System->Memory->вкладка Running Programs->свою программу(sample в нашем случае) и нажмите кнопку Stop.

В следующий раз мы будем писать flash плеер. Не пропустите:)

С автором Вы можете связаться по этому адресу - programschool@inbox.ru

Эти и другие статьи можно посмотреть на www.programschool.tu2.ru 


В избранное