我找到了一些代码,用于调用__uuidof(IMyInterface)
但实际上调用__uuidof(pIMyInterface)
,其中pIMyInterface
是IMyInterface
类型的指针。调用值而不是类型时,__uuidof
如何表现?
e.g。 int x=123; __uuidof(x)
相当于__uuidof(int)
或__uuidof(123)
答案 0 :(得分:4)
__uuid
是一个关键字,而不是一个函数。它不是“被调用”,它是由编译器直接解析的。当然,在识别操作数是变量时没有问题。并且它知道变量的类型,因此查找类型的__declspec(uuid)
属性没有问题。
答案 1 :(得分:1)
来自MSDN:
__uuidof (
expression
)
表达式可以是类型名称,指针,引用或数组 该类型,专门针对这些类型的模板,或变量 这些类型。只要编译器可以使用它,该参数就是有效的 找到附加的GUID。