Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

  • »CoookeiMonssterr« ist der Autor dieses Themas

Beiträge: 25

Wohnort: Schweiz

Beruf: Informatik-Lehrling

  • Private Nachricht senden

1

24.11.2014, 09:28

Laufzeitfehler - DirectX11 (Unbehandelte Ausnahme)

Hallo zusammen

Da ich mich für das Spieleprogrammieren mit DirectX interessiere und noch keinerlei Erfahrungen damit habe, habe ich einmal ein kleines Test Programm geschrieben
in welchem ich Direct3D initialisiere. Leider funktioniert das Programm nicht richtig ich bekomme jedes Mal beim Erstellen des Devices und der Swapchain einen Laufzeitfehler...

Unbehandelte Ausnahme bei 0x651D1C68 (d3d11.dll) in newNewTest.exe: 0xC0000005: Zugriffsverletzung beim Schreiben an Position 0x00000008







Leider kann ich den Fehler nicht finden :dash: und würde mich freuen, wenn Ihr mit helfen könntet.
Zudem würde ich mich über jeden Kommentar bezüglich dem Code Design (Darstellung, Aufbau, etc.) und über jede Art von Kritik freuen.




MFG


CoookeiMonssterr
»CoookeiMonssterr« hat folgendes Bild angehängt:
  • Fehlermeldung.png
»CoookeiMonssterr« hat folgende Datei angehängt:
  • Projekt.zip (5,42 kB - 35 mal heruntergeladen - zuletzt: 16.05.2024, 16:30)

2

24.11.2014, 09:33

Sieht nach einem Nullpointer aus, den du(oder DX)) dereferenzierst. Klick auf 'Unterbrechen', dann siehst dus genau.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

3

24.11.2014, 09:38

So verrückt es auch klingt, er muss wohl eher auf "Weiter" klicken, damit er in den Source springt. Ansonsten wird das Programm einfach nur beendet und er sieht gar nix.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

  • »CoookeiMonssterr« ist der Autor dieses Themas

Beiträge: 25

Wohnort: Schweiz

Beruf: Informatik-Lehrling

  • Private Nachricht senden

4

24.11.2014, 10:23

Vielen Dank für die schnellen Antworten.

Ich wusste schon vorher, dass die 3 Pointer laut VSE 2012 als <Speicher kann nicht gelesen werden> deklariert wurde.

Jedoch weiss ich nicht wieso :dash:

@BlueCobold: Ich muss auf "Unterbrechen" klicken. Ansonsten beendet er das Programm nicht... Bei "Weiter" bin ich in ner Schlaufe von Fehlern xD

Ich würde mich wie gesagt freuen, wenn jemand etwas zum Design des Codes und dem Programm etwas sagen könnte.

Mach man das bei echten Spielen so wie ich das gemacht habe oder macht man das anders?
Es es so wie ich es gemacht habe gut gemacht? (Was kann man besser machen?)
Wie gut ist mein Code strukturiert? (Kann man Ihn gut lesen, Gibt es Empfehlungen von euch)

MFG

CoookeiMonssterr

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

5

24.11.2014, 10:40

Du versuchst einen Nullpointer zu dereferenzieren:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
CApplication::CApplication(_In_ HINSTANCE* p_phInstance)
{
    m_phInstance = p_phInstance;
    m_uiWidnowWidth = 800;
    m_uiWindowHeight = 600;
    m_pWindow = new CWindow(p_phInstance);
    HWND* phWnd = m_pWindow->Create("Beispiel Fenster", 800, 600);
    m_pDirect3D->Init(phWnd); // !!!! NULLPOINTER !!!!
};


Note: Noch etwas schlimmer. Der Pointer ist nicht initialisiert. Im Debugmodus bekommst du den Fehler angezeigt, weil der Zeiger automatisch auf 0 initialisiert wird. Nicht so in Release-Builds.
@D13_Dreinig

  • »CoookeiMonssterr« ist der Autor dieses Themas

Beiträge: 25

Wohnort: Schweiz

Beruf: Informatik-Lehrling

  • Private Nachricht senden

6

24.11.2014, 10:46

:pillepalle: das ist mir jetzt aber peinlich.... :dash: :dash: :dash: :dash:

Der Fehler war so eindeutig... Das ich den nicht gefunden habe ;(
Habe an einem ganz anderem Ort gesucht. (Habe den Pointer auf die Klasse CDirect3D leer gelassen :dash: :dash: bzw. hab mit m_pDirect3d = new CDirect3D; kein Objekt in den Speicherort platziert (Odr wie man das auch immer nennt ?( )

Vielen Dank für die schnellen Antworten..

Trotzdem würde es mich freuen, wenn Ihr noch meine Fragen zum Code beantworten könntet (Sie vorherige Antwort)

  • »CoookeiMonssterr« ist der Autor dieses Themas

Beiträge: 25

Wohnort: Schweiz

Beruf: Informatik-Lehrling

  • Private Nachricht senden

7

24.11.2014, 10:48

So verrückt es auch klingt, er muss wohl eher auf "Weiter" klicken, damit er in den Source springt. Ansonsten wird das Programm einfach nur beendet und er sieht gar nix.

Du versuchst einen Nullpointer zu dereferenzieren:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
CApplication::CApplication(_In_ HINSTANCE* p_phInstance)
{
    m_phInstance = p_phInstance;
    m_uiWidnowWidth = 800;
    m_uiWindowHeight = 600;
    m_pWindow = new CWindow(p_phInstance);
    HWND* phWnd = m_pWindow->Create("Beispiel Fenster", 800, 600);
    m_pDirect3D->Init(phWnd); // !!!! NULLPOINTER !!!!
};


Note: Noch etwas schlimmer. Der Pointer ist nicht initialisiert. Im Debugmodus bekommst du den Fehler angezeigt, weil der Zeiger automatisch auf 0 initialisiert wird. Nicht so in Release-Builds.



Ja. danke das hab ich jetzt gerade auch herausgefunden.. :dash: :dash: :dash: :dash:

Könntest du dir trotzdem noch meine Fragen ansehen?

Vielen Dank für die Antwort

Werbeanzeige