Функция FindResourceW (libloaderapi.h)

Определяет расположение ресурса с указанным типом и именем в указанном модуле.

Чтобы указать язык, используйте функцию FindResourceEx .

Синтаксис

HRSRC FindResourceW(
  [in, optional] HMODULE hModule,
  [in]           LPCWSTR lpName,
  [in]           LPCWSTR lpType
);

Параметры

[in, optional] hModule

Тип: HMODULE

Дескриптор модуля, чей переносимый исполняемый файл или сопутствующий файл MUI содержит ресурс. Если этот параметр имеет значение NULL, функция выполняет поиск в модуле, используемом для создания текущего процесса.

[in] lpName

Тип: LPCTSTR

Имя ресурса. Кроме того, вместо указателя этот параметр может иметь значение MAKEINTRESOURCE(ID), где ID — это целочисленный идентификатор ресурса. Дополнительные сведения см. в разделе Примечания ниже.

[in] lpType

Тип: LPCTSTR

Тип ресурса. Кроме того, вместо указателя этот параметр может иметь значение MAKEINTRESOURCE(ID), где ID — это целочисленный идентификатор заданного объекта.

тип ресурса. Сведения о стандартных типах ресурсов см. в разделе Типы ресурсов. Дополнительные сведения см. в разделе Примечания ниже.

Возвращаемое значение

Тип: HRSRC

Если функция выполняется успешно, возвращаемое значение представляет собой дескриптор блока сведений указанного ресурса. Чтобы получить дескриптор ресурса, передайте этот дескриптор в функцию LoadResource .

Если функция завершается сбоем, возвращается значение NULL. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Если IS_INTRESOURCE имеет значение TRUE для x = lpName или lpType, x задает целочисленный идентификатор имени или типа заданного ресурса. В противном случае эти параметры являются длинными указателями на строки, завершающиеся null. Если первым символом строки является знак фунта (#), остальные символы представляют десятичное число, указывающее целочисленный идентификатор имени или типа ресурса. Например, строка "#258" представляет целочисленный идентификатор 258.

Чтобы уменьшить объем памяти, необходимый для ресурса, приложение должно ссылаться на него по целочисленным идентификаторам, а не по имени.

Приложение может использовать FindResource для поиска любого типа ресурса, но эту функцию следует использовать только в том случае, если приложение должно получить доступ к данным двоичных ресурсов путем последующих вызовов LoadResource , а затем LockResource.

Чтобы использовать ресурс немедленно, приложение должно использовать одну из следующих функций для конкретных ресурсов, чтобы найти ресурс и преобразовать данные в более удобную форму.

Функция Действие
FormatMessage Загружает и форматирует запись таблицы сообщений.
LoadAccelerators Загружает таблицу ускорителей.
LoadBitmap Загружает ресурс растрового изображения.
LoadCursor Загружает ресурс курсора.
LoadIcon Загружает ресурс значка.
LoadMenu Загружает ресурс меню.
LoadString Загружает запись таблицы строк.

Например, приложение может использовать функцию LoadIcon для загрузки значка для отображения на экране. Однако приложение должно использовать FindResource и LoadResource , если загружает значок для копирования данных в другое приложение.

Строковые ресурсы хранятся в разделах до 16 строк на каждый раздел. Строки в каждом разделе хранятся в виде последовательности подсчитываемых (не обязательно завершаемых null) строк Юникода. Функция LoadString извлекает строковый ресурс из соответствующего раздела.

Примеры

Пример см. в разделе Обновление ресурсов.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header libloaderapi.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

Основные понятия

FindResourceEx
FormatMessage
IS_INTRESOURCE
LoadAccelerators
LoadBitmap
LoadCursor
LoadIcon
LoadMenu
LoadResource
LoadString
LockResource

Другие ресурсы

Справочные материалы

Ресурсы
SizeofResource