4

通过此构造将 C++ bool 转换为 Windows API BOOL 是否安全

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

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

感谢 Dima(温和地)以我最初提出问题的方式指出我的粗心。

4

3 回答 3

10

你的意思是


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

如果是这样,那么是的,这将起作用。

于 2008-11-05T19:43:26.527 回答
3

是的,这会起作用,但是

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

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

bool bb = (bool) apiboolean;
于 2008-11-05T20:12:54.907 回答
1

Visual Studio 2005 将简单地接受:

bool b = true;
BOOL apiboolean = b;

无需铸造

请注意,相反的 BOOL->bool 并不是像这样简单地工作。

于 2011-01-31T16:39:31.907 回答