比较C中的两个GUID

时间:2013-08-14 14:17:37

标签: c visual-studio-2010 guid

我正在从Visual Studio 2010开发一个C程序。我需要创建GUID然后进行比较。

我包括#34; #include guiddef.h"在我的节目中。

以下是代码段,但在编译代码时我一直遇到错误。

//mainGUID is assign value in the program
GUID mainGUID;

//Function call which compares passed GUID with the mainGUID
int CheckGUID(GUID guid)
{
  if(IsEqualGUID(guid,mainGUID))
   return 1;
  else
   return 0;
}

我收到以下错误

Error   3   error C2172: 'memcmp' : actual parameter is not a pointer : parameter 1

Error   3   error C2172: 'memcmp' : actual parameter is not a pointer : parameter 2

不确定发生了什么。

1 个答案:

答案 0 :(得分:4)

函数IsEqualGUID需要REFGUID个参数:

BOOL IsEqualGUID(
  _In_  REFGUID rguid1,
  _In_  REFGUID rguid2
);

REFGUIDtypedef GUID* REFGUID。所以你可能会逃脱:

IsEqualGUID(&guid, &mainGUID)
            ^      ^

警告:我对IsEqualGUID没有任何经验,这一切都来自MSDN(错误信息也指向了这个,是的)。