__uuidof
运算符
Microsoft 专用
检索附加到表达式的 GUID。
语法
__uuidof (
expression)
注解
此 expression 可以是类型名称、指针、引用或该类型的数组、专用于这些类型的模板或这些类型的变量。 只要编译器可使用参数查找附加的 GUID,此参数就有效。
将 0 或 NULL 作为自变量提供时是此内部函数的特例。 在此情况下,__uuidof
将返回由零组成的 GUID。
使用此关键字可将附加的 GUID 提取到:
注意
在调试版本中,__uuidof
始终动态初始化对象(在运行时)。 在发布版本中,__uuidof
可静态初始化对象(在编译时)。
为了与以前的版本兼容,除非指定了编译器选项 /Za
(禁用语言扩展),否则 _uuidof
是 __uuidof
的同义词。
示例
以下代码(使用 ole32.lib 编译的)将显示使用 module 特性创建的库块的 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 专用
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈