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。

注解

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

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

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

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

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

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

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

示例

有关示例,请参阅 更新资源

要求

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

另请参阅

概念性

FindResourceEx

FormatMessage

IS_INTRESOURCE

LoadAccelerators

LoadBitmap

LoadCursor

LoadIcon

LoadMenu

LoadResource

LoadString

LockResource

其他资源

引用

资源

SizeofResource