Поделиться через


Функция FindResourceA (winbase.h)

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

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

Синтаксис

HRSRC FindResourceA(
  [in, optional] HMODULE hModule,
  [in]           LPCSTR  lpName,
  [in]           LPCSTR  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 winbase.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

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

FindResourceEx

FormatMessage

IS_INTRESOURCE

LoadAccelerators

LoadBitmap

LoadCursor

LoadIcon

LoadMenu

LoadResource

LoadString

LockResource

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

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

Ресурсы

SizeofResource