Freigeben über


__uuidof-Operator

Microsoft-spezifisch

Ruft die GUID ab, die dem Ausdruck angefügt ist.

__uuidof ( 
   expression  
)

Hinweise

Der Ausdruck kann ein Typname, ein Zeiger, ein Verweis oder ein Array dieses Typs, eine Vorlage, die auf diese Typen spezialisiert ist, oder eine Variable dieser Typen sein. Das Argument ist gültig, solange der Compiler es verwenden kann, um das angefügte GUID zu suchen.

Ein Sonderfall dieser systeminternen Funktion liegt vor, wenn entweder 0 oder NULL als Argument angegeben wird. In diesem Fall gibt __uuidof eine GUID zurück, die aus Nullen besteht.

Verwenden Sie dieses Schlüsselwort, um die an folgende Elemente angefügte GUID zu extrahieren:

  • Ein Objekt durch das erweiterte uuid-Attribut.

  • Ein Bibliotheksblock, der mit dem module-Attribut erstellt wird.

Hinweis

In einem Debugbuild initialisiert __uuidof ein Objekt immer dynamisch (zur Laufzeit).In einem Releasebuild kann __uuidof ein Objekt statistisch initialisieren (zur Kompilierzeit).

Beispiel

Mit dem folgenden Code (kompiliert mit "ole32.lib") wird das "uuid" eines Bibliotheksblocks angezeigt, der mit dem Modulattribut erstellt wird:

// expre_uuidof.cpp
// compile with: ole32.lib
#include "stdio.h"
#include "windows.h"

[emitidl];
[module(name="MyLib")];
[export]
struct stuff {
   int i;
};

int main() {
   LPOLESTR lpolestr;
   StringFromCLSID(__uuidof(MyLib), &lpolestr);
   wprintf_s(L"%s", lpolestr);
   CoTaskMemFree(lpolestr);
}

Kommentare

In Fällen, in denen sich der Bibliotheksname nicht mehr im Gültigkeitsbereich befindet, können Sie __LIBID_ anstelle von __uuidof verwenden. Beispiel:

StringFromCLSID(__LIBID_, &lpolestr);

Ende Microsoft-spezifisch

Siehe auch

Referenz

Ausdrücke mit unären Operatoren

C++-Schlüsselwörter