FindResourceExA 函数 (winbase.h)

确定指定模块中具有指定类型、名称和语言的资源的位置。

语法

HRSRC FindResourceExA(
  [in, optional] HMODULE hModule,
  [in]           LPCSTR  lpType,
  [in]           LPCSTR  lpName,
  [in]           WORD    wLanguage
);

参数

[in, optional] hModule

类型: HMODULE

模块的句柄,其可移植可执行文件或随附的 MUI 文件包含资源。 如果此参数为 NULL,则该函数将搜索用于创建当前进程的模块。

[in] lpType

类型: LPCTSTR

资源类型。 或者,此参数可以是 MAKEINTRESOURCE (ID) ,其中 ID 是给定 的整数标识符,而不是指针

资源类型。 有关标准资源类型,请参阅 资源类型。 有关详细信息,请参阅下面的“备注”部分。

[in] lpName

类型: LPCTSTR

资源的名称。 或者,此参数可以是 MAKEINTRESOURCE (ID) ,其中 ID 是资源的整数标识符,而不是指针。 有关详细信息,请参阅下面的“备注”部分。

[in] wLanguage

类型: WORD

资源的语言。 如果此参数为 MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),则使用与调用线程关联的当前语言。

若要指定当前语言以外的语言,请使用 MAKELANGID 宏创建此参数。 有关详细信息,请参阅 MAKELANGID

返回值

类型: HRSRC

如果函数成功,则返回值是指定资源的信息块的句柄。 若要获取资源的句柄,请将此句柄传递给 LoadResource 函数。

如果函数失败,则返回值为 NULL。 要获得更多的错误信息,请调用 GetLastError。

注解

如果 x = lpTypelpName IS_INTRESOURCE为 TRUE,则 x 指定给定资源的类型或名称的整数标识符。 否则,这些参数是指向以 null 结尾的字符串的长指针。 如果字符串的第一个字符是井号 (#) ,则其余字符表示一个十进制数,用于指定资源的名称或类型的整数标识符。 例如,字符串“#258”表示整数标识符 258。

若要减少资源所需的内存量,应用程序应按整数标识符而不是按名称引用它。

应用程序可以使用 FindResourceEx 查找任何类型的资源,但仅当应用程序必须通过后续调用 LoadResourceLockResource 来访问二进制资源数据时,才应使用此函数。

若要立即使用资源,应用程序应使用以下资源特定的函数之一来查找资源并将数据转换为更可用的形式。

函数 操作
FormatMessage 加载消息表条目并设置其格式。
LoadAccelerators 加载快捷键表。
LoadBitmap 加载位图资源。
LoadCursor 加载光标资源。
LoadIcon 加载图标资源。
LoadMenu 加载菜单资源。
LoadString 加载字符串表条目。
 

例如,应用程序可以使用 LoadIcon 函数加载要在屏幕上显示的图标。 但是,如果应用程序正在加载图标以将其数据复制到另一个应用程序,则应用程序应使用 FindResourceExLoadResource

字符串资源存储在每个节最多 16 个字符串的部分中。 每个部分中的字符串存储为一系列计数 (不一定以 null 结尾) Unicode 字符串。 LoadString 函数将从其相应的节中提取字符串资源。

示例

有关示例,请参阅 创建资源列表

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 winbase.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

概念性

FindResource

FormatMessage

IS_INTRESOURCE

LoadAccelerators

LoadBitmap

LoadCursor

LoadIcon

LoadMenu

LoadResource

LoadString

MAKELANGID

其他资源

引用

资源