共用方式為


編譯器錯誤 C3821

'function':在非受控函式中不可以使用受控類型或函式

內嵌元件或 setjmp 的函式不能包含實值型別或 Managed 類別。 若要修正此錯誤,請移除內嵌元件,或 setjmp 移除Managed物件。

如果您嘗試在 vararg 函式中使用自動記憶體,也可能會發生 C3821。 如需詳細資訊,請參閱 變數自變數清單 (...) (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