關於C++中的__uuidof

1.簡述

格式:__uuidof(表達式)
__uuidof關鍵字用來獲得表達式的GUID。這個表達式可以是一種類型名稱、一個指針、引用或者一個類型的數組、一個有這個類型實例化的模板或者這種類型的變量。只要編譯器能使用該參數獲得相關的GUID,那麼該參數就是有效的。
這個參數的特殊情況就是它取0或NULL的時候。在這種情況下,__uuidof會返回一個由0組成的GUID。
可以使用這一關鍵字來提取一個對象uuid擴展屬性的GUID。

用來獲取 某種結構、接口及其指針、引用、變量 所關聯的GUID,類似於某些語言中獲取類型 typeof 這樣的操作。

2.使用

假定c++中,有結構體s

struct s {
 int i;
};

可以通過下面的__declspec 給這個結構 關聯一個GUID

struct __declspec( uuid("93A1665E-C9FA-4147-AC3A-3CC855281AF8") ) s;

以後程序中使用該結構

s a = ...;
s *b = ...;
s &c = ...;

通過__uuidof(s); __uuidof(a); __uuidof(b); __uuid(c); 都能得到結構s關聯的GUID
(“93A1665E-C9FA-4147-AC3A-3CC855281AF8”)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章