Compartir a través de


Error del compilador C3821

'function': una función o tipo administrado no se puede utilizar en una función no administrada

Las funciones con ensamblado insertado o setjmp no pueden contener tipos de valor ni clases administradas. Para corregir este error, quite el ensamblado insertado y setjmp o quite los objetos administrados.

El error C3821 también puede ocurrir si intenta usar el almacenamiento automático en una función vararg. Para más información, consulte Listas de argumentos variables (...) (C++/CLI) y Semántica de pila de C++ para los tipos de referencia.

Ejemplos

El ejemplo siguiente genera el error C3821.

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

El ejemplo siguiente genera el error 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