测试无效的Windows句柄:我应该与'NULL','0'甚至'nullptr'进行比较?

Cod*_*Dan 13 c++ windows null handles

我来自一个背景,指针通常应该与'NULL'和'0'的整数进行比较.

由于我没有将Windows句柄视为纯粹意义上的"指针"(即"句柄"),所以我习惯将它们与0比较而不是"NULL".

显然,它们现在已经在内部实现为指针,但我个人认为这仅仅是为了获得一些类型安全而不是因为它们本质上是指针.

无论如何,我只是注意到返回HDC的CreateIC的帮助声明如果函数失败则返回'NULL'.

现在我很困惑 - 我想知道其他人的估计 - 将Windows句柄视为一个指针(并因此针对现代编译器对'NULL'或'nullptr'进行检查)是否更正确或应该考虑到是一个整数?

MSa*_*ers 8

将其与记录的错误返回值进行比较.这意味着你应该将它与INVALID_HANDLE0,-1,非零或<=32(我不是在玩最后一个,请参阅ShellExecute)进行比较.

  • 感谢您的回答 - 我想您是对的,没有太多的一致性,我应该按照 MSDN 告诉我的去做。 (2认同)