Приложение может уменьшить количество памяти, необходимое ресурсу, обращаясь к нему по целочисленному идентификатору вместо имени.
Приложение может использовать FindResourceдля поиска ресурса любого типа, но эта функция должна быть использована только в том случае, если приложение должно иметь доступ к двоичным данным ресурсов, когда оно впоследствии вызывает функции LoadLibraryи LockResource.
Для немедленного использования ресурса приложение должно использовать одну из следующих функций для поиска и загрузки ресурса:
Функция
|
Действие
|
FormatMessage
|
Загружает и форматирует элемент таблицы сообщений.
|
LoadAccelerators
|
Загружает таблицу акселераторов.
|
LoadBitmap
|
Загружает битовое изображение.
|
LoadCursor
|
Загружает курсор.
|
LoadIcon
|
Загружает иконку.
|
LoadMenu
|
Загружает меню.
|
LoadString
|
Загружает элемент таблицы строк.
|
Например, приложение должно и c пользовать функцию LoadIconдля загрузки иконки для ее отображения на экране. Тем не менее, приложение должно использовать функции FindResourceи LoadResource, если оно загружает иконку для копирования ее данных в другое приложение.
См. также
FindResourceEx, FormatMessage, LoadAccelerators, LoadBitmap, LoadCursor, LoadIcon, LoadMenu, LoadResource, LoadString, LockResource, SizeofResource.
Функция FindResourceExопределяет местоположение ресурса с указанным типом, именем и языком в указанном модуле.
HRSRC FindResourceEx(
HMODULE hModule , // дескриптор модуля ресурса
LPCTSTR lpName , // указатель на имя ресурса
LPCTSTR lpType // указатель на тип ресурса
WORD wLanguage // язык ресурса
);
Параметры
hModule - дескриптор модуля, чей исполняемый файл содержит ресурс. Значение параметра, равное NULL, определяет дескриптор модуля, связанного с загрузочным файлом, который использовала операционная система для создания текущего процесса.
lpName - определяет имя ресурса. Для дополнительной информации смотрите раздел "Комментарии".
lpType - определяет тип ресурса. Для дополнительной информации смотрите раздел "Комментарии". Для стандартных типов ресурсов этот параметр может принимать одно из следующих значений:
Значение
|
Пояснение
|
RT_ACCELERATOR
|
Таблица акселераторов.
|
RT_ANICURSOR
|
Анимированный курсор.
|
RT_ANIICON
|
Анимированная иконка.
|
RT_BITMAP
|
Битовое изображение.
|
RT_CURSOR
|
Зависимый от аппаратного обеспечения курсор.
|
RT_DIALOG
|
Диалоговое окно.
|
RT_FONT
|
Шрифт .
|
RT_FONTDIR
|
Таблица шрифтов .
|
RT_GROUP_CURSOR
|
Независимый от аппаратного обеспечения курсор.
|
RT_GROUP_ICON
|
Независимая от аппаратного обеспечения иконка.
|
RT_ICON
|
Зависимая от аппаратного обеспечения иконка.
|
RT_MENU
|
Меню .
|
RT_MESSAGETABLE
|
Элемент таблицы сообщений.
|
RT_RCDATA
|
Определяемые приложением ресурсы.
|
RT_STRING
|
Элемент таблицы строк.
|
RT_VERSION
|
Информация о версии.
|
wLanguage - определяет язык ресурса. Если значение этого параметра равно MAKELANGID( LANG_NEUTRAL, SUBLANG_NEUTRAL ), используется текущий язык, ассоциированный с вызывающим потоком.
Для указания языка, отличного от текущего, используйте макрос MAKELANGID.
Возвращаемые значения
В случае успеха возвращается дескриптор блока с информацией об указанном ресурсе. Для получения дескриптора ресурса передайте этот дескриптор в функцию LoadResource.
В случае неудачи возвращается NULL . Для получения дополнительной информации об ошибке вызовите функцию GetLastError.
Комментарии
Если старшее слово значения параметра lpName или lpType равно нулю, младшее слово определяет целочисленный идентификатор имени или типа указанного ресурса. В противном случае, оба значения этих параметров представляют собой длинные указатели на завершающиеся нулем строки. Если первый символ строки равен '#', оставшиеся символы представляют собой десятичное число, которое определяет целочисленный идентификатор имени или типа ресурса. Например, строка "#258" представляет собой целочисленный идентификатор 258.
Читать дальше