注册 登录
编程论坛 C++教室

请大家帮我看看这个宏定义是什么意思

mnb1237273 发布于 2014-11-16 23:09, 522 次点击
  小弟刚学MFC,所以问个比较低级的问题还请大家详解下,vs2010新建一个MFC模板,第一条语句是这样的:“HINSTANCE hInst;” 小弟当然不明白这是什么意思了,速查定义,第一次查看定义转到了这里:“DECLARE_HANDLE(HINSTANCE);” ,结果还是不明白啊。不知道括号外面的表示什么意思,也不知道括号里面的表示什么意思,继续查看定义,然后就到里这里:“#define DECLARE_HANDLE(name) struct name##__{int unused;}; typedef struct name##__ *name” ,这里终于看到庐山真面目了,那么问题来了,这个宏定义应该成为带参数的宏定义还是不是带参数的宏定义啊?“#define DECLARE_HANDLE(name) struct name##__{int unused;}; “我的理解是:以后出现”DECLARE_HANDLE“ 的地方都替换成 ”struct name“ ,后面括号里的”name“ 是参数么?还请大神指点下呀 小弟在此谢谢啦
4 回复
#2
stop12042014-11-17 08:01
声明 hInst 为 HINSTANCE 句柄型数据   (就比如 int 为整型)
你只要像使用int那样使用它就可以了,其他不用看.
#3
wp2319572014-11-17 08:30
windows编程中  很多类似这样的定义  其实质貌似都是DWORD型  所谓无符号整型
#4
mnb12372732014-11-17 11:52
主要是遇到很多api或者MFC类库的时候群友都说 查查msdn吧,小弟就想学习查看msdn了解下实质,可现在连个简单的宏定义都看不懂还怎么查看更高级的啊?还请大家指点下上面那句宏定义表示的上面意思呀?
#5
书生等待2014-11-17 17:16
#define DECLARE_HANDLE(name) struct name##__{int unused;};

是否因为前面括号里是name,后面才是struct name的
1