Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описывается формат файла двоичного ресурса, который компилятор ресурсов создает на основе содержимого файла определения ресурса. Обычно этот файл имеет расширение RES. Компоновщик переформатирует .res-файл в объектный файл ресурса, а затем связывает этот файл с исполняемым файлом приложения.
Двоичный файл ресурсов состоит из ряда сцепленных записей ресурсов. Каждая запись состоит из заголовка ресурса и данных для этого ресурса. Заголовок ресурса выравнивается по DWORD в файле и состоит из следующих элементов:
- DWORD, содержащий размер заголовка ресурса
- DWORD, содержащий размер данных ресурса
- Тип ресурса
- имя ресурса.
- Дополнительные сведения о ресурсе
Структура RESOURCEHEADER описывает формат этого заголовка. Данные для ресурса следуют заголовку ресурса и относятся к каждому типу ресурса. Некоторые ресурсы также используют структуру заголовков группы для конкретного ресурса для предоставления сведений о группе ресурсов.
Ресурсы таблиц ускорителя
Таблица акселератора — это одна запись ресурса в файле ресурсов. У него нет заголовка группы. Структура ACCELTABLEENTRY описывает каждую запись в таблице акселератора. Разрешено несколько таблиц ускорителей.
Ресурсы курсора и значка
Система обрабатывает каждый значок и курсор в виде одного файла. Однако они хранятся в RES-файлах и исполняемых файлах в виде группы ресурсов значков RT_GROUP_ICONили группы RT_GROUP_CURSOR ресурсов курсоров. Форматы файлов значков и ресурсов курсора аналогичны. В RES-файле заголовок группы ресурсов идет после всех компонентов отдельных значков или групп курсоров.
Заголовок группы для ресурсов значков и курсоров состоит из структуры NEWHEADER и одной или нескольких структур RESDIR . Для каждого значка или курсора существует одна структура RESDIR . Заголовок группы содержит сведения, необходимые приложению, чтобы выбрать правильный значок или курсор для отображения. Заголовок группы и данные, повторяющиеся для каждого значка или курсора в группе, имеют фиксированную длину. Это позволяет приложению случайным образом получить доступ к информации.
Формат каждого значка RT_ICON или компонента ресурса курсора RT_CURSOR напоминает формат файла .ico/.cur. Каждое изображение хранится в структуре BITMAPINFO , за которой следуют биты точечных изображений, независимых от цветового устройства (DIB) маски XOR значка. Монохромные биты DIB маски AND соответствуют битам DIB цвета. Существенное различие между ними заключается в том, что ресурсы курсора RT_CURSOR имеют структуру LOCALHEADER с горячей точкой, вставленной перед данными растрового изображения, а ресурсы RT_ICON такую структуру не имеют.
Так как значок RT_ICON Windows Vista или ресурс курсора RT_CURSOR может содержать данные изображения с сжатием PNG.
Анимированные RT_ANICURSOR курсоры находятся в том же формате RIFF, что и файлы .ani на диске. Анимированные RT_ANIICON ресурсы значков широко не используются.
Ресурсы диалогового окна
Диалоговое окно также является одной записью ресурса в файле ресурсов. Он состоит из одной структуры заголовка диалогового окна DLGTEMPLATE и одной структуры DLGITEMTEMPLATE для каждого элемента управления в диалоговом окне. Структуры DLGTEMPLATEEX и DLGITEMTEMPLATEEX описывают формат расширенных ресурсов диалогового окна.
Ресурсы шрифта
Шрифты хранятся в файле ресурсов в виде группы ресурсов. Отдельные шрифты составляют группу шрифтов. В .RC-файле с помощью инструкции FONT задается определение каждого шрифта. Каждый отдельный шрифт в ресурсе состоит из полного содержимого связанного .fnt файла. Структура FONTGROUPHDR следует всем отдельным компонентам шрифта в RES-файле.
Ресурсы шрифта не добавляются в ресурсы определенного приложения. Вместо этого они обычно добавляются в исполняемые файлы с расширением fon. Эти файлы обычно представляют собой DLL-библиотеки, содержащие только ресурсы, а не приложения.
Ресурсы меню
Ресурс меню состоит из структуры MENUHEADER, за которой следует одна или несколько структур NORMALMENUITEM или POPUPMENUITEM, по одному для каждого элемента меню в шаблоне меню. Структуры MENUEX_TEMPLATE_HEADER и MENUEX_TEMPLATE_ITEM описывают формат расширенных ресурсов меню.
Ресурсы таблицы сообщений
Таблица сообщений — это ресурс, содержащий форматированный текст для отображения в виде сообщения об ошибке или в поле сообщения. Основная структура в ресурсе таблицы сообщений — это структура MESSAGE_RESOURCE_DATA .
Ресурсы версии
Основная структура ресурса версии — это структура VS_FIXEDFILEINFO. Дополнительные структуры включают структуру VarFileInfo для хранения данных о языках и StringFileInfo для определяемых пользователем строковых сведений. Все строки в ресурсе версии находятся в формате Юникода. Каждый блок информации выравнивается по границе DWORD .