用vs可以产生一个新的guid,要使用在代码中,可以这样:
// {AD325566-76EE-4b2a-8B75-189016BBAC25}
DEFINE_GUID(name,
0xad325566, 0x76ee, 0x4b2a, 0x8b, 0x75, 0x18, 0x90, 0x16, 0xbb, 0xac, 0x25);
最近我在编译时,产生一个错误说该guid找不到定义,于是跟进去一看,发现
#ifdef INITGUID
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
EXTERN_C const GUID DECLSPEC_SELECTANY name \
= { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }
#else
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
EXTERN_C const GUID FAR name
#endif // INITGUID
原来没有定义INITGUID,于是加上
#ifndef INITGUID
#define INITGUID
#endif
还是不行,最后我发现在头文件包含里要加上
#include <initguid.h>
就ok了
其实还有别的方法,不要使用DEFINE_GUID宏,定义一个变量即可:
// {AD325566-76EE-4b2a-8B75-189016BBAC25}
static const GUID name =
{ 0xad325566, 0x76ee, 0x4b2a, { 0x8b, 0x75, 0x18, 0x90, 0x16, 0xbb, 0xac, 0x25 } };