最近要写一个vs资源释放的功能,但一直卡在FindResource这个函数上面,在这边记录一下。
FindResource(
__in_opt HMODULE hModule,
__in LPCWSTR lpName,
__in LPCWSTR lpType
);
第一个参数:处理包含资源的可执行文件的模块
HMODULE hInstance = ::GetModuleHandle(lpModuleName);获取模块句柄,参数为NULL时返回调用进程自身的句柄
第二个参数:指定资源名称
MAKEINTRESOURCE(dwResName),资源名转换的宏。
其中dwResName是DWORD类型,直接输入"resource.h"中资源对应的宏就可以了。
第三个参数:指定资源类型
如果是vs中的资源类型,前面要加RT_,具体如下:
#define RT_CURSOR MAKEINTRESOURCE(1)
#define RT_BITMAP MAKEINTRESOURCE(2)
#define RT_ICON MAKEINTRESOURCE(3)
#define RT_MENU MAKEINTRESOURCE(4)
#define RT_DIALOG MAKEINTRESOURCE(5)
#define RT_STRING MAKEINTRESOURCE(6)
#define RT_FONTDIR MAKEINTRESOURCE(7)
#define RT_FONT MAKEINTRESOURCE(8)
#define RT_ACCELERATOR MAKEINTRESOURCE(9)
#define RT_RCDATA MAKEINTRESOURCE(10)
#define RT_MESSAGETABLE MAKEINTRESOURCE(11)
遇到问题,直接调用 DWORD error=GetLastError();调试一下,再对照表格找出出问题的参数,就好针对性搜索解决办法了!