使用 COM 时, boolean 值将作为 VARIANT_BOOL 传递,在 wtypes.h 中声明为 short。 true 和 false 也有预定义的值:
#define VARIANT_TRUE ((VARIANT_BOOL)-1)
#define VARIANT_FALSE ((VARIANT_BOOL)0)
从 VARIANT_BOOL 转换为 C++ bool
类型的最佳方法是什么?明显的变体是:
与 VARIANT_FALSE 比较
只需转换为 bool
可以很容易地发明其他方法。
最好的方法是什么 - 最易读、最符合标准、最不容易出现意外错误植入以及最不容易移植到 64 位平台时出现问题?
最佳答案
与 VARIANT_FALSE
比较。有很多错误代码错误地将 C++ bool true
值(强制转换为整数值 1)传递给期望 VARIANT_BOOL
的函数。如果您与 VARIANT_FALSE
进行比较,您仍然会得到正确的预期值。
关于c++ - 如何最好地将 VARIANT_BOOL 转换为 C++ bool?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/886729/