Init-Problem -> Zugriffsfehler?



  • Moin,
    nachdem ich seit längerem mit wxwidgets gearbeitet hatte wollte ich mich mal etwas näher mit DirectX9 beschäftigen und hab mich mal ein bischen an einem Tutorial ausgetobt.

    Dummerweise hapert es nun schon bei der Initalisierung, denn bei der Funktion D3DXMatrixPerspectiveFovLH(...) schmeißt mir mein DEV-Cpp nur einen Zugriffsfehler ("Segmentation Fault") an den Kopf. Genaugenommen kommt er dort sogar 2mal mit der Meldung...

    Also ich hab erlich gesagt keine Idee mehr woran das liegen könnte...aber ihr kennt euch mit DirectX ja sicherlich etwas besser aus als ich 😛

    Meine init-Funktion sieht momentan so aus:

    d3d::d3d = Direct3DCreate9(D3D_SDK_VERSION);   
    
        D3DPRESENT_PARAMETERS d3dpp;   
    
        ZeroMemory(&d3dpp, sizeof(d3dpp));   
        d3dpp.Windowed = false;  
        d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;    
        d3dpp.hDeviceWindow = hWnd;    
        d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;  
        d3dpp.BackBufferWidth = graphics->w;    
        d3dpp.BackBufferHeight = graphics->h;    
        d3dpp.EnableAutoDepthStencil = true;
        d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
    
        d3d::d3d->CreateDevice(D3DADAPTER_DEFAULT,
                          D3DDEVTYPE_HAL,
                          hWnd,
                          D3DCREATE_HARDWARE_VERTEXPROCESSING,
                          &d3dpp,
                          &d3d::dev);
    
         D3DXMATRIX xmat;
         d3d::dev->SetRenderState(D3DRS_AMBIENT,D3DCOLOR_XRGB(255,255,255));
         D3DXMatrixPerspectiveFovLH(&xmat, 0.8f, graphics->w/graphics->h, 0.5f, 1000.0f);
         d3d::dev->SetTransform(D3DTS_PROJECTION, &xmat);
    

    Hat jemand nen Lösungsvorschlag?

    MfG
    Eichboson



  • Hat echt niemand ne Idee? Ich kann da Zeug schreiben wie ich will, immer stürzt es mir bei dieser Funktione mit nen Zugriffsfehler ab...was mach ich bloß falsch?



  • d3d::d3d

    Was ist den das genau?!

    Naja. 1. Hol dir mal einen aktuellen Compiler.
    2. Geh da hald mal mit dem Debugger drüber und dann poste doch, wo genau es crasht.



  • Du weisst schon das nahezu jede Direct3D9 Funktion fehlschlagen kann? In der Dokumentation stehen alle mögliche Fehler die auftreten können. Das sind meist verschiedene Fehler die zurückgegeben werden. Wenn du also vernünftige Fehlermeldungen willst, solltest du diese ganzen API-Calls sowieso wrappen (eventuell, bei extremen Fehlern wie out of memory exceptions werfen).

    Gruß
    Don06



  • Don06 schrieb:

    Du weisst schon das nahezu jede Direct3D9 Funktion fehlschlagen kann? In der Dokumentation stehen alle mögliche Fehler die auftreten können. Das sind meist verschiedene Fehler die zurückgegeben werden. Wenn du also vernünftige Fehlermeldungen willst, solltest du diese ganzen API-Calls sowieso wrappen (eventuell, bei extremen Fehlern wie out of memory exceptions werfen).

    Gruß
    Don06

    Genau.

    Und wenn du jetzt dazu noch keine Lust hast, kannst du auch das DirectX Control Panel benutzen. (Ist im SDK dabei).


Anmelden zum Antworten