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


Anmelden zum Antworten