Freigeben über


Compilerfehler C2346

'Funktion' kann nicht als systemeigenes Element kompiliert werden: Grund

Bemerkungen

Der Compiler konnte eine Funktion nicht in MSIL kompilieren.

Weitere Informationen finden Sie unter verwaltete, nicht verwaltete und /clr (Common Language Runtime Compilation).

So beheben Sie diesen Fehler

  1. Entfernen Sie den Code in der Funktion, der nicht in MSIL kompiliert werden kann.

  2. Kompilieren Sie das Modul nicht mit "/clr", oder markieren Sie die Funktion als nicht verwaltet mit dem nicht verwalteten Pragma.

Beispiel

Im folgenden Beispiel wird C2346 generiert.

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

int main()
{
   S s;
}