次の方法で共有


コンパイラ エラー C2346

'function' をネイティブとしてコンパイルすることはできません: 理由

コンパイラでは関数を MSIL にコンパイルできませんでした。

詳細については、managed、unmanaged に関するページと「/clr (共通言語ランタイムのコンパイル)」を参照してください。

このエラーを解決するには

  1. MSIL にコンパイルできない関数内のコードを削除します。

  2. モジュールを /clr でコンパイルしないか、アンマネージド pragma を使用して関数をアンマネージドとしてマークします。

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

// C2346.cpp
// processor: x86
// compile with: /clr
// C2346 expected
struct S
{
   S()
   {
      { __asm { nop } }
   }
   virtual __clrcall ~S() { }
};

int main()
{
   S s;
}