Condividi tramite


Operatore __uuidof

Sezione specifica Microsoft

Recupera il GUID collegato all'espressione.

Sintassi

__uuidof (espressione )

Osservazioni:

L'espressione può essere un nome di tipo, un puntatore, un riferimento o una matrice di tale tipo, un modello specializzato in questi tipi o una variabile di questi tipi. L'argomento è valido finché il compilatore può utilizzarlo per trovare il GUID collegato.

Un caso speciale di questo intrinseco è quando viene fornito 0 o NULL come argomento. In questo caso, __uuidof restituirà un GUID costituito da zeri.

Utilizzare questa parola chiave per estrarre il GUID collegato:

  • Oggetto dall'attributo uuid esteso.

  • Blocco di libreria creato con l'attributo module .

Nota

In una compilazione di debug inizializza __uuidof sempre un oggetto in modo dinamico (in fase di esecuzione). In una build di versione può __uuidof inizializzare un oggetto in modo statico (in fase di compilazione).

Per la compatibilità con le versioni precedenti, _uuidof è un sinonimo di __uuidof a meno che non sia specificata l'opzione /Za del compilatore (Disabilita estensioni del linguaggio).

Esempio

Il codice seguente (compilato con ole32.lib) visualizza l'elemento uuid di un blocco di libreria creato con l'attributo module:

// 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);
}

Commenti

Nei casi in cui il nome della libreria non è più incluso nell'ambito, è possibile usare __LIBID_ anziché __uuidof. Ad esempio:

StringFromCLSID(__LIBID_, &lpolestr);

Fine sezione specifica Microsoft

Vedi anche

Espressioni con operatori unari
Parole chiave