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

DarioFrodo

Treue Seele

  • »DarioFrodo« ist der Autor dieses Themas

Beiträge: 349

Wohnort: Kerkau, 100km nördlich von Magdeburg

Beruf: Selbstständig

  • Private Nachricht senden

1

26.07.2006, 14:59

Fehler in tbMemIsValid() nach dem Beenden der TriBase

Jedes mal, wenn mein Spiel zuende ist, kommt eine fehlermeldung, beim debuggen mit Express 2005:
Unhandled exception at 0x100d7554 (TriBaseD.dll) in Pacman3D2.exe: 0xC0000005: Access violation reading location 0xfeeefef6.

(kommt auch im Release Modus).

Der Debugger zeigt mir an, das die Funktion tbMemisValid() aufgerufen wird und steht bei:

C-/C++-Quelltext

1
    if(!pEntry->Data.pMemory || !pEntry->Data.pUserMemory) return FALSE;

Wobei pEntry einen ungültigen Wert hat. (CXX0030: Error:expression cannot be evaluted)

Und daher der Absturz. Das komische daran ist, das ich kein Ahnung habe, warum die Funktion tbMemIsValid() aufgerufen wird. Wenn ich debugge, kommt diese Funktion erst nach dem Return der Main Funktion. In der Log Datei steht schon: "Herunterfahren abgeschlossen!".
Hat jemand eine Idee, oder nur einen Tipp, wo ich ansetzen könnte, um den Fehler zu beheben?

Danke schon mal im Voraus. Gruß Dario.
PS: Diesen Fehler bekomme ich bei fast allen Anwendungen die ich mit der TriBase mache.
Erst wenn der letzte Fluss vergiftet,
der letzte Baum gefällt,
der letzte Fisch gefangen,
dann werdet ihr merken, dass man Geld nicht essen kann

Man verkauft die Erde nicht, auf der die Menschen wandeln.

- Indianerweisheiten

Ich bin auch ein einhornimmond ;)

Olko

Frischling

  • Private Nachricht senden

2

26.07.2006, 16:06

Also wenn die Funktion erst nach dem return der Main-Funktion aufgerufen wird, könnte es sein das sie im Destruktor eines Objekts aufgerufen wird, das beim Verlassen der Main-Funktion zerstört wird.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

3

26.07.2006, 17:46

Zeig doch mal deine WinMain. Ich vermute du hast da eine statisch erstellte Instanz. Diese werden erst nach den return geplättet.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

DarioFrodo

Treue Seele

  • »DarioFrodo« ist der Autor dieses Themas

Beiträge: 349

Wohnort: Kerkau, 100km nördlich von Magdeburg

Beruf: Selbstständig

  • Private Nachricht senden

4

29.07.2006, 09:24

Fehler behoben

Ich habe den Fehler gefunden. Die GlobalVariable

C-/C++-Quelltext

1
tbSkyBox g_SkyBox
ruft im Deskonstruktor Exit auf und darin muss die tbMemIsValid aufgerufen werden. Trozdem Danke.
Erst wenn der letzte Fluss vergiftet,
der letzte Baum gefällt,
der letzte Fisch gefangen,
dann werdet ihr merken, dass man Geld nicht essen kann

Man verkauft die Erde nicht, auf der die Menschen wandeln.

- Indianerweisheiten

Ich bin auch ein einhornimmond ;)

Werbeanzeige