如何将bool转换为BOOL?

时间:2008-11-05 19:41:31

标签: c++ winapi casting boolean

通过此构造

,我可以安全地将C ++ bool转换为Windows API BOOL
bool mybool = true;
BOOL apiboolean = mybool ? TRUE : FALSE;

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

感谢Dima(温柔地)以我最初提出问题的方式指出了我的疏忽。

3 个答案:

答案 0 :(得分:10)

你的意思是


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

如果是,那么是的,这将有效。

答案 1 :(得分:3)

是的,那会有效,但是

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

应该也能正常工作,反之亦然:

bool bb = (bool) apiboolean;

答案 2 :(得分:1)

Visual Studio 2005将接受:

bool b = true;
BOOL apiboolean = b;

无需投射

请注意,BOOL-> bool的另一种方式不仅仅是这样。