如何将 bool 转换为 BOOL?
Posted
技术标签:
【中文标题】如何将 bool 转换为 BOOL?【英文标题】:How do I cast a bool to a BOOL? 【发布时间】:2008-11-05 19:41:31 【问题描述】:通过此构造将 C++ bool 转换为 Windows API BOOL 是否安全
bool mybool = true;
BOOL apiboolean = mybool ? TRUE : FALSE;
我认为这是肯定的,因为我没有看到任何明显的问题,但我想花点时间问一下,因为这可能比看起来更微妙。
感谢 Dima(温和地)指出我最初表达问题时的粗心。
【问题讨论】:
【参考方案1】:你是说
bool b;
...
BOOL apiboolean = b ? TRUE : FALSE;
如果是这样,那么是的,这将起作用。
【讨论】:
呃。抱歉——你当然是对的。谢谢。我会解决我的问题。【参考方案2】:是的,这会起作用,但是
bool b;
...
BOOL apiboolean = (BOOL) b;
应该同样有效,反之亦然:
bool bb = (bool) apiboolean;
【讨论】:
在这种情况下,您应该使用 static_castVisual Studio 2005 将简单地接受:
bool b = true;
BOOL apiboolean = b;
无需强制转换。
请注意,与 BOOL->bool 不同的是,反之亦然。
【讨论】:
以上是关于如何将 bool 转换为 BOOL?的主要内容,如果未能解决你的问题,请参考以下文章
如何最好地将 VARIANT_BOOL 转换为 C++ bool?
无法将 'Class::operator==' 从类型 'bool (Class::)(Class*) 转换为类型 'bool [关闭]