Frage

Ich bin zur Zeit durch einen Prozess des Refactoring gehen beinhaltet die Kompilierung zu reduzieren, und ich habe über den folgenden Compiler-Fehler kommen:

[C++ Error] some_class.cpp(53): E2015 Ambiguity between 'IID_IDropTarget' and 'Virtualtrees::IID_IDropTarget'

Die Codezeile verweist er auf ist:

 if (iid == IID_IUnknown || iid == IID_IDropTarget)

Wenn ich Virtualtrees::IID_IDropTarget kompiliert es in Ordnung, aber ich brauche COMs IDropTarget Schnittstelle zu verwenden, die ich umgesetzt haben. Ich glaube, das Problem könnte sein, dass die Virtualtrees Komponente eine weitere Implementierung der IDropTarget Schnittstelle hat und sie sind widersprüchlich.

Irgendwelche Ideen, wie ich angeben kann, dass ich nicht Virtualtrees::IID_IDropTarget wollen? Oder die Namespace ich für COMs IID_IDropTarget?

War es hilfreich?

Lösung

COMs IID_DropTarget ist wie so erklärt:

EXTERN_C const IID IID_IDropTarget;

Da es extern "C", es ist im Stammnamespace:

::IID_IDropTarget

Andere Tipps

Anfügen der Name mit „::“ - als ::IID_IDropTarget angeben -. Dies effektiv C ++ sagen wird, dass Sie die eine von den globalen Namespace wollen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top