IID_IDropTarget和Virtualtrees之间的模糊:: IID_IDropTarget
-
19-09-2019 - |
题
目前,我正在经历一个过程重构包括减少编译时间,我已经遇到以下编译错误:
[C++ Error] some_class.cpp(53): E2015 Ambiguity between 'IID_IDropTarget' and 'Virtualtrees::IID_IDropTarget'
的代码它所指向的行是:
if (iid == IID_IUnknown || iid == IID_IDropTarget)
如果我使用Virtualtrees::IID_IDropTarget
它编译正常,但是我需要使用的我已经实现COM模块接口下降目标。我相信问题可能是,Virtualtrees组件具有界面下降目标的另一种实现方式,他们是相互矛盾的。
任何想法如何,我可以指定我不想Virtualtrees::IID_IDropTarget
?或命名我使用的COM的IID_IDropTarget?
解决方案
COM的IID_DropTarget
被声明,如下所示:
EXTERN_C const IID IID_IDropTarget;
由于它是extern "C"
,这是在根名称空间:
::IID_IDropTarget
其他提示
在前面加上“::”这个名字 - 指定其为::IID_IDropTarget
- 这将有效地告诉C ++要从全局命名空间中的一个
不隶属于 StackOverflow