Udostępnij za pomocą


Ostrzeżenie kompilatora (poziom 1) C4669

Rzutowanie: niebezpieczna konwersja: "klasa" jest obiektem typu Zarządzane lub WinRT

Uwagi

Rzutowanie zawiera typ środowisko wykonawcze systemu Windows lub zarządzany. Kompilator kończy rzutowanie, wykonując bitową kopię jednego wskaźnika do drugiego, ale nie zapewnia innego sprawdzania. Aby rozwiązać ten problem, nie rzutuj klas zawierających zarządzane elementy członkowskie ani typy środowisko wykonawcze systemu Windows.

Example

Poniższy przykład generuje kod C4669 i pokazuje, jak go naprawić:

// 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
}