如何检查GUID是否为零

9
什么是最简洁但易读的方法来检查GUID是否为零?我已经想出了以下代码:
GUID myGuid /* = ... */ ;
GUID zeroGuid;
memset(&zeroGuid, 0, sizeof(zeroGuid));
if (!IsEqualGUID(myGuid, zeroGuid))
{
    // ... do something if GUID is not zero ...
}

但我认为上面的代码太笨重了。当然,我可以定义自己的IsZeroGUID()函数,但我猜想C++中已经有内置函数了。

有更好的方法吗?


IsEqualGUID不是C++的“内置函数”。它是Win32 COM API的一部分。 - Axel Gneiting
@Axel Gneiting:GUID 的定义也不是 C++ 的一部分 - 它与 IsEqualGUID() 一起在 Windows SDK 中。 - sharptooth
2个回答

17

GUID_NULL进行比较:

if( myGuid != GUID_NULL ) {
    //do stuff
}

1
似乎是最干净的解决方案。尽管GUID_NULLoperator!=(REFGUID, REFGUID)在SDK头文件中被定义,但遗憾的是它们在MSDN文档中没有被记录。 - user128300

2

myGUID == zeroGUID 应该可以解决问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接