接上篇,继续讨论BOOL变量。 Windows 中BOOL变量常见的好几种类型:小写的bool,大写的BOOL ,还有VARIANT_BOOL 。
小写的bool 的是C++ 标准定义的布尔类型, 各个编译器处理的方式不同,Visual C++ 把bool 定为一个字节。小写的true 和 false 也都是C++ 标准定义的关键字。
大写的BOOL 是Windows 里面定义的布尔类型,实质上int, 在 windows 头文件面有定义:
typedef int BOOL;
#define TRUE 1
#define FALSE 0
VARIANT_BOOL 是COM 使用的布尔类型, 其实质上是 short 类型:
typedef short VARIANT_BOOL;
#define VARIANT_TRUE ((VARIANT_BOOL)-1)
#define VARIANT_FALSE ((VARIANT_BOOL)0)

可以看出, 3中BOOL类型的长度不一样,而且TRUE 和 FALSE 的值也不同,在相互转换的时候需要注意。
本文转自 陈本峰 51CTO博客,原文链接:http://blog.51cto.com/wingeek/273995,如需转载请自行联系原作者

[Windows编程] C++中 bool,BOOL ,VARIANT_BOOL 的区别相关推荐

  1. Windows编程 内存中加载图片并显示 Direct离屏表面的实现

    版本:VS2015 语言:C++ 前段时间去白空轨了,感觉快燃尽了.没有看Windows的书,所以博客也没更,不过请组织放心,从现在开始,即使是节假日,我也会仔细钻研DirectX的. 今天是第七章的 ...

  2. Windows编程-GetModuleHandle,GetCurrentProcess,OpenProcess的区别?

    GetModuleHandle 得到模块的句柄 GetCurrentProcess 得到当前进程的伪句柄,一般是-1 OpenProcess 通过进程ID,得到进程的句柄 OpenProcess函数在 ...

  3. c语言编程单片机中的sbit,单片机sfr和sbit的用法

    描述 单片机sfr和sbit详解 sfr用于将一个单片机的特殊功能寄存器(special function register)赋值给一个变量,这样在后面的程序中就可以中这个变量指引(refer to) ...

  4. c语言编程单片机中的sbit,单片机c语言的sbit和sfr

    bit和int char之类的差不多,只不过char=8位, bit=1位而已.都是变量,编译器在编译过程中分配地址.除非你指定,否则这个地址是随机的.这个地址是整个可寻址空间,RAM+FLASH+扩 ...

  5. 如何使对话框中接收到WM_CHAR消息(Windows编程)

    我们大家都知道,对话框是有的时候捕获不到WM_CHAR消息的.比如,你想使对话框里的Edit控件所键入的全部变为大写.我们毫不犹豫的写到:    #include //Declare the Dial ...

  6. c 语言bool 类型数据_C ++中的bool数据类型

    c 语言bool 类型数据 In C++ programming language, to deal with the Boolean values – C++ added the feature o ...

  7. c语言中使用bool_在C语言中使用bool

    c语言中使用bool First, understand the bool in C++ programming language. In C++ programming, "bool&qu ...

  8. C++ Windows编程中WPARAM等数据类型在32位和64位系统中的差异

    本文所述情况是我在写测试代码时发现和解决问题的过程,见以下这段测试代码,在DEV-C++用32位TDM-GCC编译可无错无警告通过:但用64位编译却出错了. #include <windows. ...

  9. 使用c++进行Windows编程中各种操作文件的方法 【转】

    https://www.zhaokeli.com/article/8232.html 使用c++进行Windows编程中各种操作文件的方法 [转] 来源:赵克立博客 分类: C/C++ 标签:--发布 ...

最新文章

  1. CVPR 2022放榜!录用 2067 篇,接收数量上升24%
  2. 每天一个linux命令(9):touch命令
  3. div上下展开收缩 html,js实现div层缓慢收缩与展开的方法
  4. boost::fusion::count_if的用法测试程序
  5. R语言入门4---R语言流程控制
  6. code forces 436 C. Bus
  7. C语言学习笔记---时间函数asctime()和localtime()
  8. 引用Interop.SQLDMO.dll后的注意事项。
  9. 24. 二叉搜索树的后续遍历序列(c++版本)
  10. 对文字颜色从左到右(横向)渐变的一点理解(坑)
  11. 备忘:BLOCK CORRUPTION IN SYSTEM DATAFILE
  12. Linux中几个简单实用的文本处理工具
  13. 万能平板刷机软件_一加万能工具包(手机万能刷机工具)
  14. html绘制钟表的原理,html5 canvas绘制钟表
  15. C++学习路线图(新)
  16. 十年匠心,让国漫精致到羽翼丰满!《老鹰抓小鸡》幕后制作分享
  17. 芯片在计算机中作用是什么,逻辑芯片的作用是什么
  18. 【转】 浅谈Radius协议
  19. interrupt、interrupted 、isInterrupted 详解04
  20. Spring Cloud 断路器Hystrix实战

热门文章

  1. java的高级特性_java的高级特性_for
  2. php 跳转qq群代码_PHP小脚本~QQ免KEY值加群
  3. mysql date(6)_不使用MySQL中的DATE_ADD()将6个小时添加到now()函数吗?
  4. 用java线程绘制图案_关于多线程:使用线程在java中绘制面板
  5. 绘制分类界面以及性能曲面中的meshgrid函数
  6. 2021人工神经网络第二次作业要求
  7. 关于安徽赛区推广校赛的实施办法
  8. 蚁群用户界面:一群桌面运动的机器人
  9. 第十六届全国大学生智能汽车竞赛设想
  10. 使用技巧_信用卡的使用技巧