`
izuoyan
  • 浏览: 9222107 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[Windows编程] C++中 bool,BOOL ,VARIANT_BOOL 的区别

阅读更多

上篇,继续讨论BOOL变量。 Windows 中BOOL变量常见的好几种类型:小写的bool,大写的BOOL ,还有VARIANT_BOOL 。

小写的bool 的是C++ 标准定义的布尔类型, 各个编译器处理的方式不同,Visual C++ 把bool 定为一个字节。小写的truefalse 也都是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 的值也不同,在相互转换的时候需要注意。

分享到:
评论

相关推荐

    ADO中_variant_t变量的使用与转换

    标题中提到的"ADO中_variant_t变量的使用与转换"是一个关键的编程实践,它涉及如何有效地操作和转换 Variant 数据。_variant_t 是ATL(Active Template Library)中的一个类,它封装了COM接口中的VARIANT数据类型,...

    _variant_t类型转换

    在深入探讨如何将`_variant_t`类型转换为任意类型的细节之前,我们首先需要了解`_variant_t`是什么以及它为何如此重要。`_variant_t`是Microsoft在COM(Component Object Model)技术中广泛使用的数据类型,用于表示...

    C++实现WebBrowser控件中获取鼠标点击事件和超链接

    在C++编程中,WebBrowser控件是一种常用的组件,它允许开发者在应用程序中嵌入一个浏览器引擎,以显示网页内容并交互。MFC(Microsoft Foundation Classes)是C++的一个库,用于构建Windows应用程序,它提供了封装...

    C++数据类型与C#数据类型之间的对应关系

    * VARIANT_BOOL:在C++中,VARIANT_BOOL类型是一个布尔类型,而在C#中,它对应的是Boolean类型。 * WCHAR:在C++中,WCHAR类型是一个宽字符类型,而在C#中,它对应的是Char类型。 * WORD:在C++中,WORD类型是一个无...

    C++和C#的类型转换

    C++是一种通用的编程语言,广泛应用于操作系统、游戏开发、嵌入式系统等领域,而C#是一种现代的、面向对象的编程语言,广泛应用于Windows和Web应用程序开发中。在实际开发中,我们经常需要在C++和C#之间进行数据类型...

    Excel-VBA宏编程实例源代码-转换Variant类型的引数.zip

    在Excel的VBA(Visual Basic for Applications)编程中,Variant类型是一种非常特殊的数据类型,它能够存储各种不同种类的数据,包括数字、字符串、日期、布尔值等。在处理大量数据或者编写复杂宏时,我们经常需要对...

    C++保存EXCEL相关内容与信息.docx

    在C++编程中,与Excel相关的操作经常涉及到文件的保存,特别是对于数据处理和报告生成。本文将深入探讨如何使用C++保存Excel内容,重点在于理解不同版本的Excel文件格式,如xls和xlsx,以及如何利用Excel的API,如...

    C++到C#数据类型转换

    C++ 和 C# 是两种非常流行的编程语言,它们之间的数据类型转换是非常必要的。本文将详细介绍 C++ 到 C# 数据类型的转换,包括基本数据类型、结构体、字符串、指针等。 一、基本数据类型转换 在 C++ 中,有很多基本...

    C++操作XML.pdf

    接着,`load`方法用来加载XML文件`a.xml`到内存中,并通过`VARIANT_BOOL`参数`isSuccessFul`检查加载是否成功。 如果XML文件加载成功,程序继续进行XML操作。`get_documentElement`方法获取XML文档的根元素。然后,...

    标准MFC WinSock ActiveX控件开发实例

    然后再编写Connect(),看起来如下: BOOL CMFCWinSockCtrl::Connect(const VARIANT FAR& RemoteHost, const VARIANT FAR& RemotePort) { // TODO: Add your dispatch handler code here if(isOnlyConnect)//该...

    c++_VC++与Delphi变量类型对应关系.doc

    标题和描述均指向一个主题——《c++_VC++与Delphi变量类型对应关系》的文档,这显然是针对程序员,尤其是那些在C++(包括其变体VC++)和Delphi两种开发环境中进行代码迁移或跨平台编程的人设计的指南。下面将详细...

    xml_demo_VS2010_C++

    VARIANT_BOOL isSuccessFul; CComVariant varXmlFile(L"a.xml"); spXmldoc->put_async(VARIANT_FALSE); HRESULT hr= spXmldoc->load(varXmlFile, &isSuccessFul;); if(isSuccessFul==VARIANT_TRUE) ...

    网页数据提取功能 C++类

    网页数据提取功能主要在一个C++类及其辅助类中完成。假设提取类的名称为CDownloader(下载器),则当BHO加载时,创建一个CDownloader对象,并将Invoke中收到事件转发给该对象进行处理。CDownloader处理IE事件的主要...

    Delphi 与 C/C++ 数据类型对照表

    `BOOL`和`LongBool`是4字节的布尔类型,在C/C++中通常用`BOOL`表示。 #### 结构体和类型定义 除了上述基本数据类型之外,Delphi还提供了许多结构体类型,如`TABC`、`TAccel`等,这些结构体在C/C++中有对应的类型,...

    VC常用数据类型使用转换详解

    在VC++编程中,理解和掌握各种数据类型之间的转换至关重要,特别是在处理输入输出、计算和界面交互时。本文将深入解析一些常见的数据类型转换方法,帮助初学者更好地应对编程中的疑惑。 1. **其他数据类型转换为...

    C++必知必会

    在C++编程中,类型转换是非常重要的一个环节,尤其是在处理不同数据格式或与其他系统交互时。本文将详细介绍几种常见的类型转换方法,帮助开发者更好地理解和掌握这些技巧。 #### 二、类型转换为字符串 在C++中,...

    C++ mysql查询 C++17编写 可以自动序列化到定义的结构体,支持json类型

    在C++编程中,与MySQL数据库进行交互是常见的任务,特别是在开发需要持久化数据的应用时。C++17引入了许多新特性,增强了语言的效率和可读性,使其成为更现代、更强大的工具。本项目利用C++17的特性实现了MySQL查询...

    C++C#数据类型对照表

    - `BOOL`在C++中通常是一个`long`类型的枚举值,在C#中则使用`System.Boolean`类型来表示布尔值。 - **CHAR (char) - System.Char** - `char`在C++中表示一个字符类型,在C#中对应`System.Char`。 - **LPSTR ...

Global site tag (gtag.js) - Google Analytics