Ошибка компилятора C3821
"function": управляемый тип или функция нельзя использовать в неуправляемой функции
Функции с встроенной сборкой или setjmp не могут содержать типы значений или управляемые классы. Чтобы устранить эту ошибку, удалите встроенную сборку и setjmp
удалите управляемые объекты.
C3821 также может возникать, если вы пытаетесь использовать автоматическое хранилище в функции vararg. Дополнительные сведения см. в статьях списков аргументов переменных (...) (C++/CLI) и Семантики стека C++ для ссылочных типов.
Примеры
В следующем примере создается C3821.
// C3821a.cpp
// compile with: /clr /c
public ref struct R {};
void test1(...) {
R r; // C3821
}
В следующем примере создается 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