Kompilatorfel C3821

"funktion": Hanterad typ eller funktion kan inte användas i en ohanterad funktion

Anmärkningar

Funktioner med infogad sammansättning eller setjmp får inte innehålla värdetyper eller hanterade klasser. Åtgärda det här felet genom att ta bort den infogade sammansättningen och setjmp eller ta bort de hanterade objekten.

C3821 kan också inträffa om du försöker använda automatisk lagring i en varargfunktion. Mer information finns i Variabelargumentlistor (...) (C++/CLI) och C++ Stack-semantik för referenstyper.

Examples

I följande exempel genereras C3821.

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

I följande exempel genereras 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