您的位置:首页 > 产品设计 > UI/UE

GUID的外部定义和内部定义

2010-08-10 14:06 726 查看

(已解决!GUID的外部定义和内部定义)VC编译错误:error LNK2001: unresolved external symbol _GUID_DEVINTERFACE_USB_DEVICE

编译错误 2008-10-08 09:56:25 阅读319 评论0 字号:大中

兜了一大圈后,回到原点,再次思索如何解决。
先看上次的结果:“自己定义之后,提示重复链接;不自己定义,包含initguid.h,又提示其他的GUID重复定义;不自己定义,也不包含,提示没有链接到lib。”

此次,再次编译时,我想到一个折衷的办法,既能保证“其他的GUID”不重复定义,又能保证GUID_DEVINTERFACE_USB_DEVICE被定义。如下:
#include <winioctl.h>
#include <setupapi.h>
#include <initguid.h>
DEFINE_GUID(GUID_DEVINTERFACE_USB_DEVICE,
0xA5DCBF10L, 0x6530, 0x11D2, 0x90, 0x1F, 0x00, 0xC0, 0x4F, 0xB9, 0x51, 0xED);
#define GUID_CLASS_USB_DEVICE GUID_DEVINTERFACE_USB_DEVICE

上述代码的原理很简单。在调用其他的GUID时,即包含winioctl.h文件时,不使用INITGUID,外部定义;在调用其他的GUID之后,再包含initguid.h,即,定义INITGUID,此后再定义自己的GUID,就是使用了内部定义。
如此一来,同时使用内部定义和外部定义,完美解决!
://blog.csdn.net/lxiongh/archive/2010/03/05/5350329.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐