Errore del compilatore C3821
'function': non è possibile usare il tipo o la funzione gestita in una funzione non gestita
Le funzioni con assembly inline o setjmp non possono contenere tipi di valore o classi gestite. Per correggere questo errore, rimuovere l'assembly inline e setjmp
rimuovere gli oggetti gestiti.
C3821 può verificarsi anche se si tenta di usare l'archiviazione automatica in una funzione vararg. Per altre informazioni, vedere Elenchi di argomenti variabili (...) (C++/CLI) e Semantica dello stack C++ per i tipi di riferimento.
Esempi
L'esempio seguente genera l'errore C3821.
// C3821a.cpp
// compile with: /clr /c
public ref struct R {};
void test1(...) {
R r; // C3821
}
L'esempio seguente genera l'errore 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