Błąd kompilatora C3821
"function": nie można używać typu zarządzanego lub funkcji w funkcji niezarządzanej
Funkcje z wbudowanym zestawem lub zestawem nie mogą zawierać typów wartości ani klas zarządzanych. Aby naprawić ten błąd, usuń wbudowany zestaw i setjmp
usuń obiekty zarządzane.
C3821 może również wystąpić, jeśli spróbujesz użyć automatycznego magazynu w funkcji vararg. Aby uzyskać więcej informacji, zobacz Zmienne listy argumentów (...) (C++/CLI) i Semantyka stosu C++ dla typów odwołań.
Przykłady
Poniższy przykład generuje C3821.
// C3821a.cpp
// compile with: /clr /c
public ref struct R {};
void test1(...) {
R r; // C3821
}
Poniższy przykład generuje 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
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla