c++ - VB6 和 C++ bool 文字

标签 c++ vb6

我正在学习 C++。我的背景是:.NET 和 VB6。

我对以下网页关于 bool 值的内容很感兴趣:http://msdn.microsoft.com/en-us/library/ff381404(v=vs.85).aspx

"Despite this definition of TRUE, however, most functions that return a BOOL type can return any non-zero value to indicate Boolean truth. Therefore, you should always write this:

// Right way.
BOOL result = SomeFunctionThatReturnsBoolean();
if (result) 
{ 
    ...
}

"

这是否也适用于 VB6,即是否存在以下问题:If BooleanValue = True Then

最佳答案

Windows API 设计用于 C 程序。直到 C99 才具有 bool 类型。并且仍然不完全,例如,C99 从未被 Microsoft 编译器实现。因此,他们必须想出一种解决方法,一种与 C 编译器处理逻辑值的方式高度兼容的方法。一个 int,其中 0 为假,其他为真。因此建议。

VB6 有专门的 bool 类型和字面值 True 和 False 的关键字,因此不会出现相同的问题。然而,您仍然可能因编写不当的 COM 服务器而陷入困境。 True 的基础整数值为 -1,与许多其他语言对逻辑 bool 类型的实现高度不兼容。包括 C。VB6 很奇怪是有充分理由的,它的 And 和 Or 运算符不区分逻辑和算术和/或。通过使 True 等于 -1 和 False 等于 0 没有区别。当 COM 服务器返回 1 来指示 true 而不是 VARIANT_TRUE 时,就会出现问题。

但最重要的是,对于许多程序员来说,编写 If booleanVariable = True Then 是丑陋的,而且是钉在黑板上的。只需编写 If booleanVariable Then 即可完成。

关于c++ - VB6 和 C++ bool 文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8693520/

相关文章:

c++ - 一元 '*' 的无效类型参数(具有 'int' )数组中的最低元素

c++ - 模板化 [] 或 () 运算符重载 - 可能不使用类型作为参数?

c++ - CPP OpenCV - 尝试根据边缘裁剪图像

c# - 等价于 C# 中的 `IF ( X AND ( 2 ^ Y ) ) Then`

vb.net - 相当于 "Open fileName For Output As #1"VB6 到 .NET

com - VB.Forms 处出现错误 -2147417848。通过 COM 添加调用

c++ - CFileDialog (MFC) 异常

dll - "Compile Error Syntax error"调用函数

c# - 在 C# 中给定周数和年份计算一周的开始和结束日期(基于 ISO 规范)

c++ - 从 Slot qt 创建时 MessageDialog 卡住