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

1

24.04.2014, 23:51

Fehlermeldung: Ausnahmefehler bei 0x00F34069 in Spiel Breakanoid.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00000000

Hallo alle zusammen!

Wie ich dem Forum entnehmen kann waren schon einige meiner Kommilitonen hier unterwegs. Seit ein paar Semestern gilt es in einem unserer Kurse als Abschlussaufgabe, das Breakanoid Beispiel aus dem Buch in eine Szenerie mit unebenem Gelände zu verwandeln, dem eine Kugel folgt. Eine meiner Kommilitoninnen aus dem unteren Semester bat mich heute um Hilfe, weil ihr Code einen merkwürdigen Fehler produziert.
Grundlegend baut die Lösung auf ein Beispiel aus diesem Forum. Ich habe es mit meiner Lösung von damals verglichen und kann eigentlich keine Probleme erkenne, muss allerdings auch gestehen: Nach der Zeit bin ich mittlerweile thematisch einfach raus aus dem Ganzen..
Daher suche ich Hilfe bei euch! :)

Folgender Fehler wird produziert:
Ausnahmefehler bei 0x00F34069 in Spiel Breakanoid.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00000000

Der Fehler selbst findet in der Renderfunktion des Terrains statt. Diese habe ich allerdings zu Testzwecken sogar 1:1 mit der Renderfunktion meiner damaligen Lösung überschrieben und bekomme denselben Fehler (obschon es in meiner Version funktioniert)!

Ich möchte euch ungern jetzt sämtliche Dateien hierhinklatschen.. Sagt mir am besten was ihr benötigt! Ansonsten habe ich hier in der Dropbox auch einfach mal den Ordner ge-rar-ed.
Über Hilfe wäre ich sehr erfreut! Ich bin gerade etwas überfordert, das Projekt muss aber bis 1.5. fertig sein und die nette Dame würde ein Nicht-Bestehen ein ganzes Jahr kosten..

Vielen Dank!
Grüße

Necroscope

2

25.04.2014, 00:30

Die Tribase Engine generiert ein sehr schönes Logfile. Da schon mal reingeschaut?

PS: Die Renderfunktion ist nicht das eigentlich Problem.
"Theory is when you know something, but it doesn’t work. Practice is when something works, but you don’t know why. Programmers combine theory and practice: Nothing works and they don’t know why." - Anon

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

3

25.04.2014, 07:25

Stichwort Debugger. Und damit meine ich das Programm und nicht die Nutzer hier.
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]

CeDoMain

Alter Hase

Beiträge: 587

Wohnort: Ilmenau

Beruf: Student für Mechatronik

  • Private Nachricht senden

4

25.04.2014, 20:28

Diesen Fehler hatte ich zu Anfang auch, als ich eigene Projekte mit der TriBase-Engine begonnen habe. Bei mir habe ich damals vergessen ein auf dem Heap erstelltes Element zu deleten.

BlueCobolds Tipp ist gut, ich würde dir empfehlen, dein Programm mal im Debugger Schritt für Schritt ausführen zu lassen. Damit es schneller geht, kannst du auch Haltepunkte setzen (wenn dein SDK das unterstützt). Bei der TriBase-Engine wären interessante Punkte am Ende der Konstruktoraufrufe und Init-Funktionen. Auch ein Haltepunkt dierekt VOR dem Ende kann helfen, weil wenn bis dahin Fehlerfrei ausgeführt wird, dann liegt sehr wahrscheinlich ein Speicherleck vor. Ich gehe bei Haltepunkten immer so vor, dass ich bis dahin ausführen lasse und dann zurückgehe, wenn ein Fehler auftritt. Das ist nämlich einfacher bei umfangreichem Code, als ihn in Einzelschritten zu durchlaufen!

Bei mir war es so, dass der Fehler in einer ganz anderen Funktion gemeldet (Fehler angezeigt) wurde als er tatsächlich war. Also kann es auch falsch sein sich nur auf die Renderfunktion zu konzentrieren.

Ich hoffe ich konnte dir helfen!
Mit freundlichem Gruß
CeDo
Discord: #6996 | Skype: cedomain

Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.

CeDoMain

Alter Hase

Beiträge: 587

Wohnort: Ilmenau

Beruf: Student für Mechatronik

  • Private Nachricht senden

5

25.04.2014, 20:31

Was mir gerade noch auffällt: Was ist das denn für eine Position: 0x00000000 ???

Kann das sein? Das sieht mir nach 'nem nicht definiertem Zeiger aus oder so!? Verbessert mich, wenn das falsch ist - ist nur ne Idee!
Mit freundlichem Gruß
CeDo
Discord: #6996 | Skype: cedomain

Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.

6

25.04.2014, 21:14

Zitat

Das sieht mir nach 'nem nicht definiertem Zeiger aus oder so!? Verbessert mich, wenn das falsch ist - ist nur ne Idee!


Nein das ist nicht falsch - du liegst da absolut richtig ;)


Die tbResult CTerrain::Render() ist ja nicht groß, d.h. die dort drin verwendeten Pointer kann man an der Hand abzählen...
Nun bleibt es die Aufgabe Necroscope diesen Nullpointer zu finden.
EnvisionGame(); EnableGame(); AchieveGame(); - Visionen kann man viele haben. Sie umzusetzen und auf das Ergebnis stolz zu sein ist die eigentliche Kunst.

7

26.04.2014, 17:14

Hui! Danke für die Antworten. Dann guck ich mir das ganze mal an.
Sorry für die späte Antwort, bin selber gerade bis zum Hals in ner (schriftlichen) Hausarbeit, Deadline ebenfalls 1.5. ..
Daher ist hier gerade 2 Fronten Krieg :D

grüße

8

26.04.2014, 17:20

Oh Mann :/ wenn ich das ganze mit den Debug statt der Release EInstellung ausführe, kriege ich nen Fehler für die fehlende Dll d3dx9_43.dll :/ Ich erinner mich dunkel dass das ne ganz schöne kacke war den Fehler zu beheben. Stelle ich auf Release funktionierts, das Programm wird ausgeführt (bis dann der Zugriffsfehler kommt). Wird das Debug Log dennoch angefertigt? Ich finde nämlich nur ne txt Datei in der im Endeffekt dasselbe steht wie in Visual Studio.

Grüße!

9

26.04.2014, 17:31

Ich lese da gerade zwei Fehler raus, die du hast:
1. Die Nullpointer Exception
2. Eine fehlende Bibliothek

Du solltest diese beiden getrennt angehen.

Zu Fehler 1:
Im Debugging Modus Zeile für Zeile durchgehen und gucken, wann ein Pointer 0 ist. Diese Stelle näher ansehen und sich fragen, warum er 0 ist.

Zu Fehler 2:

Zitat

nen Fehler für die fehlende Dll d3dx9_43.dll

Hast du das DirectX SDK installiert?
Welche lib's linkst du?
EnvisionGame(); EnableGame(); AchieveGame(); - Visionen kann man viele haben. Sie umzusetzen und auf das Ergebnis stolz zu sein ist die eigentliche Kunst.

10

26.04.2014, 17:42

Habe die MS SDK mehrmals nachinstalliert, habe auch mal die spezifische DLL (die vorhanden ist) gelöscht und dann SDK reparieren lassen. Auch Visual Studio 2 mal neu installiert. Irgendwann ging dann das Kompilieren auf einmal wieder (lag wohl daran, dass ich die Projektmappenkonfiguration auf Release gestellt hatte).
Ich lass die Kommilitonin mal den Debugger ausführen, bei irh king das auch mit Debug

Werbeanzeige