__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 的结尾