MAKEINTRESOURCE是一个资源名转换的宏,这个宏是把一个数字
类型转换成
指针类型的宏,它不存在释放的问题。
简介
VC的定义是(winuser.h):
#define MAKEINTRESOURCEA(i) (
LPSTR)((ULONG_PTR)((WORD)(i)))
#define MAKEINTRESOURCEW(i) (LPWSTR)((ULONG_PTR)((WORD)(i)))
#define MAKEINTRESOURCE MAKEINTRESOURCEW
#else
#define MAKEINTRESOURCE MAKEINTRESOURCEA
用这个宏的主要原因是有的资源是用序号定义的,而不是字符串.所以要把数字转换成字符串
指针,然后再传递给
LoadResource之类的函数,这样才加载了资源.
要释放资源(用LoadResource加载的)可以调用FreeResource函数把LoadResource返回的指针传递给FreeResource.
作用
请看 Winuser.h 代码:
#define MAKEINTRESOURCEA(i) (
LPSTR)((
DWORD)((WORD)(i)))
#define MAKEINTRESOURCEW(i) (LPWSTR)((DWORD)((WORD)(i)))
#define MAKEINTRESOURCE MAKEINTRESOURCEW
#else
#define MAKEINTRESOURCE MAKEINTRESOURCEA
现在,再来归纳它的用法.就用
FindResource来说明.(这个函数与MFC的AfxFindResourceHandle)
HRSRC FindResource(HMODULE hModule, // module handleLPCTSTR lpName, // resource nameLPCTSTR lpType // resource type);
就是lpName参数需要使用MAKEINTRESOURCE ,因为它需要
LPCTSTR