NullReferenceException
-
Hey
Ich bekomme hier immer eine NullReference Exception bei den Initialisierungen.
verts ist also wohl nicht initialisiert... Weiß jemand, wie ich das beheben kann?array<CustomVertex::TransformedColored^>^verts; Vector4^ vec1 = gcnew Vector4(this->Width / 2.0f, 50.0f, 0.5f, 1.0f); Vector4^ vec2 = gcnew Vector4((this->Width / 5.0f), this->Height / 2.0f, 0.5f, 1.0f); Vector4^ vec3 = gcnew Vector4(this->Width / 5.0f, this->Height / 3.0f, 0.5f, 1.0f); verts = gcnew array<CustomVertex::TransformedColored^>(3){}; [e]rarr[/e] verts[0]->Position = *vec1; [e]rarr[/e] verts[0]->Color = System::Drawing::Color::Black.ToArgb(); [e]rarr[/e] verts[1]->Position = *vec2; [e]rarr[/e]verts[1]->Color = System::Drawing::Color::Aqua.ToArgb(); [e]rarr[/e] verts[2]->Position = *vec3; [e]rarr[/e] verts[2]->Color = System::Drawing::Color::Purple.ToArgb(); m_device->VertexFormat = CustomVertex::TransformedColored::Format; m_device->DrawUserPrimitives(PrimitiveType::TriangleList, 1, verts);
-
Kenn mich mit der Sprache nicht aus, aber falls
array<CustomVertex::TransformedColored^>^verts=gcnew array<CustomVertex::TransformedColored^>(3){};
eine Abkürzung für
shared_ptr<array<shared_ptr<CustomVertex::TransformedColored> > > verts=shared_ptr<array<shared_ptr<CustomVertex::TransformedColored> > >(new array<shared_ptr<CustomVertex::TransformedColored> >(3));
ist, dann:
du erstellst ein Array von Null-Zeigern und deferenzierst sie mit verts[0]->...
kann nicht gutgehen.
-
Ah okay mist du hast Recht. Ohne Token geht es. Vielen Dank!
(Handelte sich übrigens um Microsoft::DirectX::Direct3D)
Kann geclosed werden