MAKEINTRESOURCE的作用
来源:互联网 发布:淘宝reebonz海外旗舰店 编辑:程序博客网 时间:2024/06/06 00:04
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
#endif // !UNICODE
这个宏是把一个数字类型转换成指针类型的宏,它不存在释放的问题.
用这个宏的主要原因是有的资源是用序号定义的,而不是字符串.所以要把数字转换成字符串指针,然后再传递给LoadResource之类的函数,这样才加载了资源.
要释放资源(用LoadResource加载的)可以调用FreeResource函数把LoadResource返回的指针传递给FreeResource.
MAKEINTRESOURCE 的作用:
是把一个"数字形ID",转化为"字符串".但是执行前后,输入的数据的内容和长度是不变的!它只不过就是C语言里面"强制类型转换"而已.
请看 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
#endif // !UNICODE
现在,再来归纳它的用法.就用FindResource来说明.(这个函数与MFC的AfxFindResourceHandle)
HRSRC FindResource(
HMODULE hModule, // module handle
LPCTSTR lpName, // resource name
LPCTSTR lpType // resource type
);
就是lpName参数需要使用MAKEINTRESOURCE ,因为它需要LPCTSTR类型的参数输入.那么,情况就很清楚了.凡涉及"资源"的API或者MFC类,在参数类型为LPCTSTR时,就应该使用 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
#endif // !UNICODE
这个宏是把一个数字类型转换成指针类型的宏,它不存在释放的问题.
用这个宏的主要原因是有的资源是用序号定义的,而不是字符串.所以要把数字转换成字符串指针,然后再传递给LoadResource之类的函数,这样才加载了资源.
要释放资源(用LoadResource加载的)可以调用FreeResource函数把LoadResource返回的指针传递给FreeResource.
MAKEINTRESOURCE 的作用:
是把一个"数字形ID",转化为"字符串".但是执行前后,输入的数据的内容和长度是不变的!它只不过就是C语言里面"强制类型转换"而已.
请看 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
#endif // !UNICODE
现在,再来归纳它的用法.就用FindResource来说明.(这个函数与MFC的AfxFindResourceHandle)
HRSRC FindResource(
HMODULE hModule, // module handle
LPCTSTR lpName, // resource name
LPCTSTR lpType // resource type
);
就是lpName参数需要使用MAKEINTRESOURCE ,因为它需要LPCTSTR类型的参数输入.那么,情况就很清楚了.凡涉及"资源"的API或者MFC类,在参数类型为LPCTSTR时,就应该使用 MAKEINTRESOURCE.这是针对"资源名字"为"数字类型"时的情况.
阅读全文
0 0
- MAKEINTRESOURCE的作用
- MAKEINTRESOURCE的作用
- MAKEINTRESOURCE()
- MAKEINTRESOURCE
- MAKEINTRESOURCE
- MAKEINTRESOURCE
- MAKEINTRESOURCE
- MAKEINTRESOURCE
- MAKEINTRESOURCE
- MAKEINTRESOURCE
- 创建菜单;MAKEINTRESOURCE;菜单加入窗口的两种方式
- MAKEINTRESOURCE 宏
- 函数---MAKEINTRESOURCE
- LoadMenu 与 MAKEINTRESOURCE
- 关于MAKEINTRESOURCE宏
- VC MAKEINTRESOURCE 析疑
- 关于MAKEINTRESOURCE宏
- 为何mfc使用MAKEINTRESOURCE
- javascript里的"类"
- OpenCV中CV_Assert函数和C++中assert()函数
- CSDN日报20170706——《屌丝程序员的逆袭之旅》
- 你是否真的了解编程语言?
- 类和对象基础
- MAKEINTRESOURCE的作用
- One-Hot encoder独热编码
- phpstorm快捷键
- Android 全局背景音乐
- CSDN日报20170707——《稀缺:百分之二的选择》
- VScode快捷键
- html学习笔记2
- CentOS 7最小化安装后找不到‘ifconfig’命令——修复小提示
- 公众号“今日作文素材”文章列表 (20170708-20170714)