__uuidof 運算子
Microsoft 專有的
擷取附加到運算式的 GUID。
__uuidof (
expression
)
備註
運算式可以是型別名稱、 指標、 參考或該型別的陣列,這些型別或這些型別的變數上進行特製化樣板。 引數無效,因為編譯器可以用它來尋找附加的 GUID。
此內建的一個特殊情形就是不論是哪一 0 或 NULL 提供做為引數。 如此一來, __uuidof會傳回零所組成的 GUID。
使用這個關鍵字來擷取附加到的 GUID:
![]() |
---|
在偵錯組建中, __uuidof一定會初始化物件以動態 (於執行階段)。在發行組建中, __uuidof可能會以靜態方式 (在編譯時期) 初始化物件。 |
範例
下列程式碼 (使用 ole32.lib 編譯) 會顯示該模組屬性以建立文件庫區塊的 uuid:
// 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);
}
註解
在範圍中不再是程式庫名稱的情況下,您可以使用 __LIBID_,而不是__uuidof。 例如:
StringFromCLSID(__LIBID_, &lpolestr);
結束 Microsoft 特定