比较 C 中的两个 GUID

标签 c visual-studio-2010 guid

我正在使用 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

不知道发生了什么。

最佳答案

函数IsEqualGUID采用 REFGUID 参数:

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

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

IsEqualGUID(&guid, &mainGUID)
            ^      ^

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

关于比较 C 中的两个 GUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18234254/

相关文章:

visual-studio-2010 - 为什么 Debug模式比 VS 中的 Release 慢?

c++ - Visual Studio 2010 默认属性表似乎在调试和发布配置下都有链接,这是怎么回事?

python - 如何使用 Python 为 Mongo 创建全局唯一的 GUID/UUID 系统?

database-design - 如果您要进行复制,为什么 GUID 是 PK 的最佳选择?

c - 数组和 scanf 函数一起工作的问题

C: 代替从分配它的变量打印字符串?

c - 整数指针未初始化

c++ - 如何包装 C __cdecl API 以便 FORTRAN 可以调用它(使用 __stdcall)?

sql - 在 Visual Studio 中复制列标题以及查询结果

c# - 查找图像类型(gif、bmp、jpg 等)的预览处理程序 GUID