Sdílet prostřednictvím


Chyba kompilátoru C3821

'function': Spravovaný typ nebo funkce nelze použít v nespravované funkci.

Poznámky

Funkce s vloženým sestavením nebo setjmp nemohou obsahovat typy hodnot ani spravované třídy. Pokud chcete tuto chybu opravit, odeberte vložené sestavení nebo setjmp odeberte spravované objekty.

K C3821 může dojít také v případě, že se pokusíte použít automatické úložiště ve funkci vararg. Další informace naleznete v tématu Seznamy argumentů proměnných (...) (C++/CLI) a Sémantika zásobníku C++ pro odkazové typy.

Příklady

Následující příklad vygeneruje C3821.

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

Následující příklad vygeneruje C3821.

// 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