2011-01-27 13 views
6

¿Cuál es la forma más concisa y legible de verificar si un GUID es cero? He encontrado el siguiente código:Cómo comprobar si el GUID es cero

GUID myGuid /* = ... */ ; 
GUID zeroGuid; 
memset(&zeroGuid, 0, sizeof(zeroGuid)); 
if (!IsEqualGUID(myGuid, zeroGuid)) 
{ 
    // ... do something if GUID is not zero ... 
} 

Pero creo que el código anterior es demasiado torpe. Por supuesto, podría definir mi propia función IsZeroGUID(), pero supongo que ya hay una función incorporada en C++.

¿Hay una manera mejor?

+0

IsEqualGUID no es una "función incorporada" de C++. Es parte de la API COM de Win32. –

+0

@Axel Gneiting: la definición de 'GUID' tampoco forma parte de C++, está en Windows SDK junto con' IsEqualGUID() '. – sharptooth

+0

¿No es eso lo que dije? –

Respuesta

14

Comparar con GUID_NULL:

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

Parece ser la solución más limpia. Aunque 'GUID_NULL' y' operator! = (REFGUID, REFGUID) 'se definen en los archivos de encabezado SDK, es una pena que no estén documentados en la documentación de MSDN. –

2

myGUID == zeroGUID deberían hacer el truco.

Cuestiones relacionadas