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