__uuidof 运算符

Microsoft 专用

检索 GUID 并附加到表达式。

__uuidof ( 
   expression  
)

备注

表达式 可以是类型名称、指针、引用或该类型的数组、特定类型的模板或这些类型的变量。 只要编译器可以使用它查找附加的 GUID,自变量就是有效的。

内部函数的一个特例就是当在 0NULL 中作为参数提供。 在这种情况下,__uuidof 将返回由零组成的GUID。

使用此关键字用以提取附加的 GUID:

  • 一个对象通过 uuid 扩展其特性。

  • 库块以使用 模块 属性创建。

备注

在调试版本中,__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 专用

请参见

参考

使用一元运算符的表达式

C++ 关键字