2

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

我在我的程序中包含“#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

不知道发生了什么。

4

1 回答 1

5

该函数IsEqualGUID接受REFGUID参数:

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

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

IsEqualGUID(&guid, &mainGUID)
            ^      ^

警告讲师:我真的没有任何经验IsEqualGUID,这一切都来自 MSDN(并且错误消息也指向这一点,是的)。

于 2013-08-14T14:24:53.807 回答