作者共发了2篇帖子。 内容转换:不转换▼
 
点击 回复
158 1
在使用C语言开发Windows程序时,在很多地方NULL需要进行强制类型转换
一派护法 十九级
1楼 发表于:2016-5-23 22:23
这是因为在Windows.h头文件中定义NULL宏时会进行语言判断。
如果当前语言是C语言,就把NULL定义为(void *)0,
如果是C++的话就直接定义为0
一派护法 十九级
2楼 发表于:2016-5-23 22:25
例如在定义窗口类的时候,C语言里面必须写成:
wcex.style = (UINT)NULL;
但C++里面可以直接写:
wcex.style = NULL;

CreateWindow函数也是一样。
C:
hwndCombo = CreateWindow(WC_COMBOBOX, NULL, WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST, 10, 160, 200, (int)NULL, hWnd, NULL, hInst, NULL);
C++:
hwndCombo = CreateWindow(WC_COMBOBOX, NULL, WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST, 10, 160, 200, NULL, hWnd, NULL, hInst, NULL);

回复帖子

内容:
用户名: 您目前是匿名发表
验证码:
(快捷键:Ctrl+Enter)
 

本帖信息

点击数:158 回复数:1
评论数: ?
作者:巨大八爪鱼
最后回复:巨大八爪鱼
最后回复时间:2016-5-23 22:25
 
©2010-2024 Arslanbar Ver2.0
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。