Владимир Волков - Программирование для карманных компьютеров
- Название:Программирование для карманных компьютеров
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Владимир Волков - Программирование для карманных компьютеров краткое содержание
Эта книга предназначена для того, чтобы читатель смог быстро научиться создавать мощные и эффективные приложения для наладонных компьютеров Pocket PC. Рынок программ для карманных компьютеров сейчас бурно развивается, и именно в этой отрасли программист-одиночка может успешно соперничать с большими корпорациями, которые создают программное обеспечение. Прочитав эту книгу, читатель сможет уверенно и быстро разрабатывать достаточно сложные приложения для Pocket PC. Огромное количество разнообразных примеров позволит быстро совершенствоваться и развиваться, обогащая свой опыт работы.
Книга предназначена для начинающих программистов.
Программирование для карманных компьютеров - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
LPCTSTR MyFunk1(){
return (LPCTSTR)MyFunk2(25, (LPCTSTR)TEXT(«MUMU»));
}14. Запущенная программа теперь выведет в сообщении слово MUMU 25 раз. Спецификаторы extern и static
По умолчанию функции, объявленные без спецификатора, считаются объявленными со спецификатором extern. Это значит что объявления LPCTSTR MyFunkK) и extern LPCTSTR MyFunkK) идентичны. Несмотря на это явное написание спецификатора extern не приветствуется.
Спецификатор extern подразумевает, что объявление функции будет видно из любого другого файла. То есть подобную функцию можно будет использовать во всех модулях проекта.
Второй спецификатор stati с, который следует указывать явно, ограничивает видимость функции тем файлом, в котором она была объявлена.Поставка приложений
В отличие от среды eVB, в которой есть удобный инструмент Application Install Wizard, в среде eVC подобного мастера нет. Тем не менее в состав Pocket PC SDK входит инструмент, позволяющий создавать поставочные комплекты приложений, разработанных в eVC. В каталоге C: \Windows СЕ Tools\wce300\Pocket PC 2002\ support\ActiveSync\windows се application installation находится программа CabWiz.exe с примером поставочного приложения и конфигурационными файлами. Изменяя эти конфигурационные файлы в соответствии с конфигурацией вашего приложения, можно создать его поставочный вариант.
Механизм поставки приложений для Pocket PC включает в себя три основных программы.
? CAB Wizard – приложение, которое создает дистрибутив (CAB-файл) на настольном компьютере.
? Application Manager – один из компонентов ActiveSync, который предоставляет возможность управлять инсталляцией и удалением приложений на Pocket PC с настольного компьютера.
? WCELoad – программа, которая находится на Pocket PC и предназначена для распаковки установочного комплекта, установки файлов на Pocket PC и регистрации установочной информации и информации, необходимой для корректного удаления программы.
? Полный цикл поставки включает в себя создание установочного комплекта на настольном компьютере (CAB Wizard), регистрацию этого комплекта на настольном компьютере, копирование на Pocket PC (Application Manager) и, наконец, распаковку и установку поставочного комплекта на Pocket PC (WCELoad). В данном разделе будет рассматриваться работа с CAB Wizard и процесс создания поставочного комплекта.
Структура файла. inf
Файл с установочной информацией для Pocket PC является стандартным информационным файлом Windows с несколько редуцированной структурой. В файле могут быть находиться секции и ключи, описанные в следующем списке. Если рядом с ключом не указывается его описание, то значение ключа всегда будет таким, как указано в данном списке.
В начале файла располагается обязательная секция [Version].
? Ключ Signature может принимать значения $Windows NT$ или $Windows 95$.
? Ключ Provider позволяет указывать имя компании, которая создала приложение.
? Ключ CESignature принимает значение $Windows СЕ$.
Затем в файле располагается обязательная секция [CEStrings].
? Ключ AppName позволяет указывать имя приложения. Все входы переменной %AppName% в создаваемом inf-файле будут заменены на appname.
? Ключ InstallDir задает имя каталога установки на устройстве. Все входы переменной %InstallDir% в создаваемом inf-файле будут заменены на соответствующее значение.
В секции [Strings] разработчик может хранить любые необходимые строковые константы. А в секции [CEDevice] располагается информация о целевой платформе.
? Ключ ProcessorType содержит значение, которое возвращает фукция SYSTEMINFO. dwProcessorType.
? Ключ UnsupportedPlatforms позволяет указывать перечень несовместимых с программой платформ.
? Ключ VersionMin содержит значение, которое возвращается функцией OSVERSIONINF0.dwVersionMinor.
? Ключ VersionMax содержит значение, которое возвращается функцией OSVERSIONINFO.dwVersionMajor.
Также обязательно нужно использовать секцию [Defaultlnstall]. В этой секции определяются имена секций, которые должны использоваться для чтения настроек при копировании файлов, создании или редактировании ключей реестра и создании ярлыков. Те секции, которые не перечислены в этом разделе, не будут использованы, даже если они присутствуют в inf-файле. Обычно секция содержит от двух до пяти ключей.
? Copyfiles (обязательный ключ). Содержит названия секций, из которых осуществляется копирование файлов.
? AddReg (обязательный ключ). Содержит названия секций, содержащих записи, которые нужно внести в реестр.
? Ключ CEShortcuts = содержит названия секций, в которых описано расположение и параметры ярлыков, создаваемых на устройстве.
? Ключ CESetupDLL позволяет указывать имя и расположение библиотеки, в которой содержатся дополнительные функции, вызываемые во время установки.
? Ключ CESelfRegister содержит имена библиотек, которые должны быть зарегистрированы во время установки вызовом функции DllRegisterServer, после чего их регистрация может быть удалена при деинсталляции приложения вызовом функции DllllnregisterServer.
В обязательной секции [SourceDisksNames] описывается расположение устанавливаемого приложения. Ключ diskid позволяет указывать комментарий и путь к каталогу с файлами приложения. Путь может быть как абсолютным, так и относительным.
В обязательной секции [SourceDisksFiles] указывается, на каком диске и в каком каталоге этого диска размещены файлы вашего приложения. Для этого используется ключ filename.
В обязательной секции [DestinationDirs] указывается, в какие подкаталоги на устройстве будут помещены при установке файлы, собранные в группы в секции [CopyFiles]. Ключ DefaultDestDir указывает каталог для установки по умолчанию. Если никакой другой каталог не задан и файл не отнесен ни к одной из групп, то он будет помещен в этот каталог.
Обязательная секция [CopyFiles] содержит несколько секций, имена которых были объявлены в ключе CopyFiles секции [Defaultlnstall]. Каждая такая секция содержит один или несколько ключей destinationfilename,[sourcefilename],[,flags], где destinationfilename – имя файла при копировании на устройство при установке, sourcefilename – имя файла, который копируется (если destination filename и sourcefilename совпадают, то этот параметр указывать не обязательно). В параметре flags указываются константы из табл. 4.6.
Таблица 4.6. Константы копирования файлов
Имя обязательной секции [AddReg] должно быть таким, которое указано в ключе AddReg секции [Defaultlnstall]. В этой секции перечисляются ключи, которые надо добавить к реестру устройства при установке. Для этого используется строка registryrootstring, subkey, [valuename], flags, value [,value]. Параметр registry rootstrings может принимать одно из трех значений.
? HKCR – HKEYCLASSESROOT.
? HKCU – HKEYCURRENTUSER.
? HKLM – HKEY LOCAL MACHINE.
В параметре value_name указывается имя соответствующего параметра в реестре. А параметр flags может состоять из комбинации значений, приведенных в табл. 4.7. Таблица 4.7. Параметры записи ключей реестра
Секция [CEShortCuts] определяется в ключе CEShortCuts секции [DefaultInstall]. Она содержит строки следующего формата:shortcut_filename,shortcut_type_flag,target_file/path[,standard_destination_path]
Читать дальшеИнтервал:
Закладка: