2008-11-05 59 views
4

我是在通过这个结构铸造C++布尔到Windows API BOOL安全如何将BOOL投射到BOOL?

bool mybool = true; 
BOOL apiboolean = mybool ? TRUE : FALSE; 

我想这是一个肯定,因为我没有看到任何明显的问题,但我想花点时间只问,因为这可能比看起来更微妙。

感谢迪玛(轻轻地)以我原本措辞的方式指出我的粗心。

回答

10

你的意思


bool b; 
... 
BOOL apiboolean = b ? TRUE : FALSE; 

如果是这样,那么,这将工作。

+0

Duh。对不起 - 你当然是对的。谢谢。我会解决我的问题。 – 2008-11-05 19:46:09

3

是的,这将工作,但

bool b; 
... 
BOOL apiboolean = (BOOL) b; 

应该工作一样好,一样相反:

bool bb = (bool) apiboolean; 
+0

在这种情况下,您应该使用static_cast (b)。 – Dima 2008-11-05 20:25:16

1

的Visual Studio 2005将简单地接受:

bool b = true; 
BOOL apiboolean = b; 

不需要铸造

请注意,BOOL-> bool的其他方法不会像这样工作。

相关问题