Compilerfehler C3821

"Funktion": Verwalteter Typ oder verwaltete Funktion kann nicht in einer nicht verwalteten Funktion verwendet werden.

Funktionen mit Inline-Assembly oder setjmp dürfen keine Werttypen oder verwalteten Klassen enthalten. Entfernen Sie die Inline-Assembly, oder entfernen Sie die verwalteten Objekte, um setjmp diesen Fehler zu beheben.

C3821 kann auch auftreten, wenn Sie versuchen, den automatischen Speicher in einer fgrg-Funktion zu verwenden. Weitere Informationen finden Sie unter Variablenargumentlisten (...) (C++/CLI) und C++-Stapelsemantik für Verweistypen.

Beispiele

Im folgenden Beispiel wird C3821 generiert.

// C3821a.cpp
// compile with: /clr /c
public ref struct R {};
void test1(...) {
   R r;   // C3821
}

Im folgenden Beispiel wird C3821 generiert.

// C3821b.cpp
// compile with: /clr
// processor: /x86
ref class A {
   public:
   int i;
};

int main() {
   // cannot use managed classes in this function
   A ^a;

   __asm {
      nop
   }
} // C3821