FindResource功能确定指定模块中具有指定类型和名称的资源的位置。
HRSRC FindResource(
HMODULE 【HMODULE】, | //资源模块句柄 |
LPCTSTR 【lpName】, | //指向资源名称的指针 |
LPCTSTR 【//值类型缓冲区的地址】 | //指向资源类型的指针 |
); |
参数
【HMODULE】
可执行文件包含资源的模块的句柄。
值为NULL指定与操作系统用于创建当前进程的映像文件相关联的模块句柄。
【lpName】
指定资源的名称。有关详细信息,请参阅备注部分。
【//值类型缓冲区的地址】
指定资源类型。有关详细信息,请参阅备注部分。对于标准资源类型,此参数可以是以下值之一:
值 | 含义 |
RT_ACCELERATOR | 加速器表 |
RT_ANICURSOR | 动画光标 |
RT_ANIICON | 动画图标 |
RT_BITMAP | 位图资源 |
RT_CURSOR | 硬件依赖光标资源 |
RT_DIALOG | 对话框 |
RT_FONT | 字体资源 |
RT_FONTDIR | 字体目录资源 |
RT_GROUP_CURSOR | 与硬件无关的游标资源 |
RT_GROUP_ICON | 独立于硬件的图标资源 |
RT_ICON | 硬件依赖图标资源 |
RT_MENU | 菜单资源 |
RT_MESSAGETABLE | 消息表条目 |
RT_RCDATA | 应用程序定义资源(原始数据) |
RT_STRING | 字符串表条目 |
RT_VERSION | 版本资源 |
返回值
如果函数成功,则返回值是指定资源信息块的句柄。要获取资源的句柄,请将此句柄传递给LoadResource函数。
如果函数失败,返回值为NULL。要获取扩展错误信息,请调用GetLastError.
备注
如果【lpName】或【//值类型缓冲区的地址】参数的高位字为零,则低位字指定给定资源的名称或类型的整数标识符。否则,这些参数是指向空终止字符串的长指针。如果字符串的第一个字符是一个井号(#),剩余的字符表示一个十进制数,它指定资源的名称或类型的整数标识符。例如,字符串“#258”表示整数标识符258。
应用程序应该通过以整型标识符而不是名称来引用它们来减少资源所需的内存量。
应用程序可以使用FindResource查找任何类型的资源,但只有当应用程序在进行后续调用LoadLibrary和LockResource时必须访问二进制资源数据,才应使用此函数。
要立即使用资源,应用程序应使用以下特定于资源的函数之一在一次调用中查找和加载资源:
功能 | 行动 |
FormatMessage | 加载和格式化消息表条目。 |
LoadAccelerators | 加载加速器表。 |
LoadBitmap | 加载位图资源。 |
LoadCursor | 加载游标资源。 |
LoadIcon | 加载图标资源。 |
LoadMenu | 加载菜单资源。 |
LoadString | 加载一个字符串表条目。 |
例如,应用程序可以使用LoadIcon功能加载图标以在屏幕上显示。但是,如果加载图标将其数据复制到另一个应用程序,应用程序应使用FindResource和LoadResource.
也可以看看
FindResourceEx, FormatMessage, LoadAccelerators, LoadBitmap, LoadCursor, LoadIcon, LoadMenu, LoadResource, LoadString, LockResource, SizeofResource