Delen via


Compilerfout C3821

'functie': beheerd type of functie kan niet worden gebruikt in een niet-beheerde functie

Opmerkingen

Functies met inlineassembly of setjmp kunnen geen waardetypen of beheerde klassen bevatten. Als u deze fout wilt oplossen, verwijdert u óf de inline-assembly en setjmp, óf de beheerde objecten.

C3821 kan ook optreden als u automatische opslag in een vararg-functie probeert te gebruiken. Zie Lijsten met variabelenargumenten (...) (C++/CLI) en C++ Stack-semantiek voor referentietypen voor meer informatie.

Voorbeelden

In het volgende voorbeeld wordt C3821 gegenereerd.

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

In het volgende voorbeeld wordt C3821 gegenereerd.

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