__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++关键字