MAKEINTRESOURCE
资源名转换的宏
MAKEINTRESOURCE是一个资源名转换的宏,这个宏是把一个数字类型转换指针类型的宏,它不存在释放的问题。
简介
VC的定义是(winuser.h):
#define MAKEINTRESOURCEA(i) (LPSTR)((ULONG_PTR)((WORD)(i)))
#define MAKEINTRESOURCEW(i) (LPWSTR)((ULONG_PTR)((WORD)(i)))
#ifdef UNICODE
#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)))
#ifdef UNICODE
#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
参考资料
最新修订时间:2023-12-29 17:30
目录
概述
简介
参考资料