我目前正在经历一个重构过程,以减少编译时间,并且遇到了以下编译错误:[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 IDropTarget接口(interface)。我认为问题可能在于Virtualtrees组件具有IDropTarget接口(interface)的另一种实现,并且它们存在冲突。有什么想法可以指定而不是不想要
Virtualtrees::IID_IDropTarget
吗?还是我用于COM的IID_IDropTarget的命名空间? 最佳答案
COM的IID_DropTarget
声明如下:
EXTERN_C const IID IID_IDropTarget;
由于它是
extern "C"
,所以它在根 namespace 中:::IID_IDropTarget
关于c++ - IID_IDropTarget和Virtualtrees::IID_IDropTarget之间的歧义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2234952/