'IDataObject': ambiguous symbol的解决方法
2018-06-07 14:57 晨~光 阅读(464) 评论(0) 编辑 收藏 举报今天在使用managed C++捕获系统消息时,编译出现了以下问题:
'IDataObject': ambiguous symbol
'IServiceProvider': redefinition; different basic types
'IServiceProvider': ambiguous symbol
google一番后,发现还是自己的问题,在.h文件里使用了using namespace System,而这个头文件在.cpp文件里是第一个引用的头文件。
这就导致了在.cpp文件里出现了using namespace 在#include "***.h"的情况,导致上面问题的发生。到底是自己业务不熟造成的,:(
解决方法就是确保所有的using namespace xxxx在 #include "xxxx.h"之后。
另附hook系统消息使用的几个头文件,备忘在此。
#include "windows.h" #include "Wtsapi32.h" #include <initguid.h> #include "Usbiodef.h" #include "Wiaintfc.h" #include <Dbt.h>
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步