unbehandelte ausnahme: zugriffsverletzung beim lesen an Position 0x00000000



  • Inwiefern kann ich den hier verwenden?



  • Und die Fehlermeldung deutet auf Dereferenzierung eines Nullzeigers hin. Sicher, dass die aufgerufenen Funktionen mit Nullzeigern klar kommen?



  • So wie ich das ganze verstehe übergebe ich nur einen Zeiger und der ist kein Nullzeiger. Er ist überhaupt nicht initialisiert. Die funktion initialisiert ihn indem sie einen Zeiger zurückgibt. So steht es zumindest in meinem Buch.

    Edit:
    Hier ist mal die definition der Funktion:
    virtual HRESULT STDMETHODCALLTYPE GetBuffer(
    /* [in] */ UINT Buffer,
    /* [annotation][in] */
    __in REFIID riid,
    /* [annotation][out][in] */
    __out void **ppSurface) = 0;
    Vielleicht hilft euch das ja weiter.



  • Du überprüfst ja gar nicht, ob die Funktionen erfolgreich waren. Wie wär's mit Rückgabewerte überprüfen? Oo



  • Denk dran, ich hab ziemlich wenig Erfahrung. Wie kann ich den Rückgabewert überprüfen, wo doch der Compiler das Programm bei der Ausführung der Funktion anhält?



  • Neo234 schrieb:

    Denk dran, ich hab ziemlich wenig Erfahrung. Wie kann ich den Rückgabewert überprüfen, wo doch der Compiler das Programm bei der Ausführung der Funktion anhält?

    😕 dir fehlt so viel vom grundlegenden verständnis, dass directx sicher nicht das richtige einstiegsgebiet für dich ist. versuch dich besser an einfachereren aufgaben, die dir die grundlagen besser vermitteln. zum beispiel die unterschiede zwischen compiler, debugger und betriebssystem. das ist zwar nicht so spannend wie pixel auf dem bildschirm zu zaubern, aber letzten endes zielführender als dein vorgehen.



  • Neo234 schrieb:

    Denk dran, ich hab ziemlich wenig Erfahrung. Wie kann ich den Rückgabewert überprüfen, wo doch der Compiler das Programm bei der Ausführung der Funktion anhält?

    Du solltest jeden Aufruf prüfen, in deinem Fall insbesondere den:

    dxgiFactory->CreateSwapChain(md3dDevice, &sd, &mSwapChain);
    

    da mSwapChain in Zeile 126 vermutlich 0 ist.



  • Ich habe alles zu den Grundlagen gelesen was ich kriegen konnte. Mir fehlt nur Erfahrung. Mag sein das DirectX schwierig ist, aber genau dafür habe ich ja ein Buch das mir das ganze erklärt. Anfangsschwierigkeiten hätte ich egal mit was ich Anfange. Ich denke das ich die Hauptunterschiede zwischen Compiler, Debugger und Betriebssystem verstanden habe. Soviel lässt sich da auch kaum falsch verstehen.

    @manni66
    Das ist mal ein guter Ansatz. Vielen Dank.



  • Dann sollte dir auch klar sein, wie man den Rückgabewert einer Funktion überprüft. Dein DirectX Buch sollte das im Übrigen auch machen.



  • Neo234 schrieb:

    Ich denke das ich die Hauptunterschiede zwischen Compiler, Debugger und Betriebssystem verstanden habe. Soviel lässt sich da auch kaum falsch verstehen.

    ok, aber...

    Neo234 schrieb:

    wo doch der Compiler das Programm bei der Ausführung der Funktion anhält?

    anscheinend doch.


Anmelden zum Antworten