Compilerfehler C2788

Aktualisiert: November 2007

Fehlermeldung

'Bezeichner': Mehr als eine GUID mit diesem Objekt verbunden
'identifier' : more than one GUID associated with this object

Der __uuidof-Operator akzeptiert entweder einen mit einer GUID verbundenen benutzerdefinierten Typ oder ein Objekt eines solchen benutzerdefinierten Typs. Dieser Fehler tritt auf, wenn das Argument ein Objekt mit mehreren GUIDs ist.

Im folgenden Beispiel wird C2788 generiert:

// C2788.cpp
#include <windows.h>
struct __declspec(uuid("00000001-0000-0000-0000-000000000000")) A {};
struct __declspec(uuid("{00000002-0000-0000-0000-000000000000}")) B {};
template <class T, class U> class MyClass {};

typedef MyClass<A,B> MyBadClass;
typedef MyClass<A,A> MyGoodClass;

int main() {
   __uuidof(MyBadClass);    // C2788
   // try the following line instead
   __uuidof(MyGoodClass);
}