Einzelnen Beitrag anzeigen

Romi

Registriert seit: 25. Apr 2007
72 Beiträge
 
#1

Hilfe beim Beheben einer Access Violation

  Alt 29. Dez 2008, 20:27
Hi,

in diesem Thread habe ich ein Programm namens JewelCrack vorgestellt, das noch einen Fehler enthält: Es treten scheinbar zufällig Access Violations auf.

Ich habe diese schon mehrfach im Debugger abgefangen. Sie treten auf, wenn ich auf einen Stein zugreife.

Zum Aufbau des Programms (Sourcecode hängt auch unten an):
Ich habe einen Array[1..400] of tStein. Dieser wird am Anfang mit Steinen bis an den Rand gefüllt und dann werden Einzelne dieser Steine immer wieder zerstört. Ich gehe sehr oft diesen Array durch und greife dabei dann auf bestimmte Steine zu (natürlich nachdem ich geprüft habe, dass diese nicht nil sind und dass diese nicht "deaded" sind (das ist die Andorra2D-Methode (der Grafikengine, die ich benutzte), Sprites zu töten). Und genau bei diesen Zugriffen passiert es. Das komische ist, dass es nicht immer passiert. Man kann gerne mal fünf Spiele spielen, ohne das etwas passiert, und bei sechsten schmeisst er dann mit Fehlern um sich.

Noch ein Kommentar zum Sourcecode:
Er ist technisch gesehen sicherlich nicht sonderlich schön. Aber ich habe ihn ein wenig Kommentiert und strukturiert ist er auch, er sollte eigentlich relativ leicht zu lesen sein. Verbesserungsvorschläge und Unschönheiten in meiner Arbeit nehme ich allerdings gerne entgegen, man will ja dazulernen
Erstellt wurde er mit Delphi 7, später zu Delphi 2009 konvertiert. Die Projektdatei ist also für D2009.

Es ist mir eigentlich relativ egal, was ihr mit dem Sourcecode macht. Nur wenn ihr ihn modifizieren wollt, dann lasst doch bitte meinen Namen dabei stehen.

Danke schonmal,
Roman

EDIT: Hier bekommt ihr Andorra2D her: http://downloads.sourceforge.net/and...se_mirror=osdn
Angehängte Dateien
Dateityp: zip jewelcrack_sourcecode_137.zip (223,9 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat