コンパイラの警告 C4959

アンマネージ構造体 'type' は、そのメンバーへのアクセスによって検証不可能なコードが生成されるため、/clr:safe で定義できません

解説

アンマネージ型のメンバーにアクセスすると、検証不可能な (peverify.exe) イメージが生成されます。

詳細は、純粋で検証可能なコード (C++/CLI)を参照してください。

/clr:safe コンパイラ オプションは Visual Studio 2015 では非推奨とされており、Visual Studio 2017 ではサポートされていません。

この警告は、エラーとして表示されます。無効にするには、 warning プラグマ、または /wd コンパイラ オプションを使用します。

次の例では C4959 が生成されます。

// C4959.cpp
// compile with: /clr:safe

// Uncomment the following line to resolve.
// #pragma warning( disable : 4959 )
struct X {
   int data;
};

int main() {
   X x;
   x.data = 10;   // C4959
}