Информация о версии
Информацию о версии необходимо включать в исполняемые файлы, библиотеки и элементы управления. Эта информация создается подобно любому другому ресург су Windows, такому как растровые изображения и меню — с помощью редактора ресурсов. Если в процессе установки файлов возникает сбой, приложение может извлечь информацию о версии для вывода информативных сообщений об ошибках. Приложение может извлекать информацию о версии для любого файла с использованием функций GetFileVersionlnfoSize, GetFileVersionlnfo и VerQueryValue. Пример задействования информации о версии демонстрируется в листинге 29.2.
Листинг 29.2 Информация о версии
См. \local-sources\chap29\t29-02. txt
После извлечения информации о версии при помощи функции VerQuerylnfo можно получить определенные значения. Подробности извлечения данных из информации о версии содержатся в описании VerQueryValue.
Декомпрессия файлов
Рассмотренные выше функции поддержки версий могут автоматически обрабатывать сжатые файлы. Иногда для приложения желательна возможность выполнять декомпрессию файлов независимо от функций управления версиями. Для этой цели в Windows реализован набор функций.
Для декомпрессии файла приложение может задействовать функцию LZCopy. До применения этой функции приложение должно открыть исходный и целевой файлы с помощью LZOpenFile. Эта функция подобна CreateFile и возвращает дескрипторы, применяемые в функциях LZCopy, LZRead и LZSeek. Если файл уже открыт с помощью CreateFile, этот дескриптор файла может использоваться совместно с LZInit для получения дескриптора, эквивалентного тому, что возвращает функция LZOpenFile. Наконец, после копирования файлов приложение использует функцию LZClose для закрытия ссылок на файл. В сжатый файл можно внедрить имя распакованного файла.
Для извлечения этого имени используется функция GetExpandedName. Если в сжатый файл не внедрено имя исходного файла, функция просто возвращает имя сжатого файла.
Если для приложения необходим файл большого размера, который предназначен только для чтения, с целью экономии дискового пространства его можно хранить в пользовательской системе в сжатом виде. Интерфейс Win32 API предоставляет функции LZRead и LZSeek, позволяющие считывать данные из сжатого файла, как если бы он был распакован. По принципу действия они подобны ReadFile и SetFilePointer. Однако Win32 API не предоставляет функций сжатия файлов. Для этого применяется утилита COMPRESS.EXE — консольное приложение, которое сжимает файлы с использованием схемы, совместимой с рассмотренными в данной главе функциями.
Описание функций декомпрессии и установки файлов
Таблица 29.1 содержит перечень функций декомпрессии и установки. Затем следует подробное описание каждой функции.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.