none
NET Framework и DirectX - C++ вариант. RRS feed

  • Общие обсуждения

  • Возможно ли создать приложение Windows Forms на C++ с использованием DirectX? Пытался, сначала выводил ошибку NullReferenseExeption, потом после небольшой правки Microsoft::DirectX::Direct3D::InvalidCallException и потом также NullReferenceExeption.

    Вот отрезки кода (остальное неважно, как я считаю):

    private: System::Void WE_Load(System::Object^  sender, System::EventArgs^  e) 
    			 {
    				try {
    						ppr = gcnew PresentParameters();
    						ppr->Windowed = true;
    						ppr->SwapEffect = SwapEffect::Discard;
    						device = gcnew Microsoft::DirectX::Direct3D::Device(0, DeviceType::Software, this, Microsoft::DirectX::Direct3D::CreateFlags::SoftwareVertexProcessing, ppr);
    					}
    				catch (System::NullReferenceException^ e)
    					{
    						MessageBox::Show("Вот блин! Что-то не так. Посмотри:\n" + e->Message+ "\n" + e->Data + "\n" + e->Source + "\n" + e->InnerException, "Ошибка!", MessageBoxButtons::OK, MessageBoxIcon::Error);
    					}
    				catch (Microsoft::DirectX::Direct3D::InvalidCallException^ e)
    					{
    						MessageBox::Show("Вот блин! Что-то не так. Посмотри:\n" + e->Message+ "\n" + e->Data + "\n" + e->Source + "\n" + e->InnerException, "Ошибка!", MessageBoxButtons::OK, MessageBoxIcon::Error);
    					}
    			 }

    private: System::Void WE_Paint(System::Object^  sender, System::Windows::Forms::PaintEventArgs^  e) 
    			 {
    				 try 
    					{
    						device->BeginScene();
    						device->Clear(Microsoft::DirectX::Direct3D::ClearFlags::Target, System::Drawing::Color::Blue, 1.0, 0);
    						device->EndScene();
    						device->Present(dev);
    					}
    				catch (System::NullReferenceException^ e)
    					{
    						MessageBox::Show("Вот блин! Что-то не так. Посмотри:\n" + e->Message+ "\n" + e->Data + "\n" + e->Source + "\n" + e->InnerException, "Ошибка!", MessageBoxButtons::OK, MessageBoxIcon::Error);
    					}
    				g = e->Graphics;
    				g = System::Drawing::Graphics::FromHwnd(dev);
    			 }


    10 октября 2012 г. 13:58