分享方式:


編譯器警告 (層級 1) C4669

'cast':不安全的轉換:'class' 是 Managed 或 WinRT 型別的物件

轉換包含 Windows 執行階段型別或 Managed 型別。 編譯器會執行一個指標到另一個指標的位元複製來完成轉換,但不提供其他檢查。 若要解決這個警告,請不要轉換包含 Managed 成員或 Windows 執行階段型別的類別。

下列範例會產生 C4669,並示範如何修正此問題:

// C4669.cpp
// compile with: /clr /W1
ref struct A {
   int i;
   Object ^ pObj;   // remove the managed member to fix the warning
};

ref struct B {
   int j;
};

int main() {
   A ^ a = gcnew A;
   B ^ b = reinterpret_cast<B ^>(a);   // C4669
}