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 = lpName 或 lpType IS_INTRESOURCE为 TRUE,则 x 指定给定资源的名称或类型的整数标识符。 否则,这些参数是指向以 null 结尾的字符串的长指针。 如果字符串的第一个字符是井号 (#) ,则其余字符表示一个十进制数,指定资源的名称或类型的整数标识符。 例如,字符串“#258”表示整数标识符 258。
若要减少资源所需的内存量,应用程序应按整数标识符而不是名称来引用它。
应用程序可以使用 FindResource 查找任何类型的资源,但仅当应用程序必须通过对 LoadResource 和 LockResource 进行后续调用来访问二进制资源数据时,才应使用此函数。
若要立即使用资源,应用程序应使用以下特定于资源的函数之一来查找资源,并将数据转换为更易用的形式。
函数 | 操作 |
---|---|
FormatMessage | 加载消息表条目并设置其格式。 |
LoadAccelerators | 加载加速键表。 |
LoadBitmap | 加载位图资源。 |
LoadCursor | 加载光标资源。 |
LoadIcon | 加载图标资源。 |
LoadMenu | 加载菜单资源。 |
LoadString | 加载字符串表条目。 |
例如,应用程序可以使用 LoadIcon 函数加载图标以在屏幕上显示。 但是,如果应用程序正在加载图标以将其数据复制到另一个应用程序,则应用程序应使用 FindResource 和 LoadResource 。
字符串资源存储在每个节最多 16 个字符串的部分中。 每个部分中的字符串存储为计数的序列, (不一定以 null 结尾) Unicode 字符串。 LoadString 函数将从其相应的节中提取字符串资源。
示例
有关示例,请参阅 更新资源。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | winbase.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |
另请参阅
概念性
其他资源
引用