共用方式為


編譯器錯誤 C2786

'type' : __uuidof的操作數無效

__uuidof運算符會採用具有附加 GUID 的使用者定義型別,或是這類使用者定義型別的物件。 可能的原因:

  1. 自變數不是使用者定義的類型。

  2. __uuidof 無法從 自變數擷取 GUID。

下列範例會產生 C2786:

// C2786.cpp
struct __declspec(uuid("00000000-0000-0000-0000-000000000000")) A {};

int main() {
   __uuidof(int);   // C2786
   __uuidof(int *);   // C2786
   __uuidof(A **);   // C2786

   // no error
   __uuidof(A);
   __uuidof(A *);
   __uuidof(A &);
   __uuidof(A[]);

   int i;
   int *pi;
   A **ppa;

   __uuidof(i);      // C2786
   __uuidof(pi);     // C2786
   __uuidof(ppa);    // C2786
}