コンパイラ エラー C2700 から C2799


Visual C++ の概念 : C/C++ プログラムのビルド
コンパイラ エラー 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
}
タグ :


Page view tracker