編譯器警告 (層級 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
}