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

chazon

Frischling

  • »chazon« ist der Autor dieses Themas

Beiträge: 56

Wohnort: Zons

  • Private Nachricht senden

1

10.07.2005, 13:02

aufräumen??

Hi Leute,

Ich heb ein Problem beim Beenden meines Programms.a
Ich räume folgendermaßen alles auf


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
    case WM_DESTROY:
        CleanUp();      
        SetWindowLongPtr (hwndCtrl[ID_EDIT], GWLP_WNDPROC, PrevWndProcEdit);
        SetWindowLongPtr (hwndCtrl[ID_REDIT_1], GWLP_WNDPROC, PrevWndProcRich);
        closesocket(sock);
        WSACleanup();
        PostQuitMessage(0);

        break;



Also zuerst die Tribase-Engine, dann alle Subclassed Controls
anschließend die Socket-Verbindung und alles was dazu gehört


jedoch kommt bei mir nach dem Beenden immer die Fehlermeldung:


Quellcode

1
2
3
Die Anweisung in "0x00403ab1" verweist auf Speicher in "0x00000000".
Der Vorgang "read" konnte nicht auf dem Speicher durchgeführt werden.
...


Ich denke ich hab irgendwas vergessen. Ich weis nur nicht was ?

Danke im Voraus
Gruss Chazon

DrthM2001

Alter Hase

Beiträge: 721

Wohnort: Karlsruhe

  • Private Nachricht senden

2

10.07.2005, 13:26

du greift auf einen nullpointer zu. kommentier mal einzelne zeilen aus und teste es neu, wann es nicht kommt.
if(pointer!=NULL
free(pinter);
oder so ähnlich.
ich tippe mal auf dein closesocket. wenn keine verbindung hergestellet werden konnte ist das afaik null.

Mastermind

unregistriert

3

10.07.2005, 13:31

darf ich an dieser Stelle zu new und delete statt malloc und free raten, wenn c++ verwendet wird?

chazon

Frischling

  • »chazon« ist der Autor dieses Themas

Beiträge: 56

Wohnort: Zons

  • Private Nachricht senden

4

10.07.2005, 14:06

Ohne Tribase läuft das Programm
Wenn ich am Ende CleanUp weglasse
erscheint auch keine Fehlermeldung mehr,
jedoch wird der Prozess (TaskManager) nicht beendet.

Ich hab das Gefül , dass ich an der falschen Stelle aufräume,
oder irgend etwas zweimal gelöscht wird

???

Mastermind

unregistriert

5

10.07.2005, 14:11

Zitat von »"TGGC"«

Debugger!


Das hat über dem Zitat durch "hätte" ersetzen.

chazon

Frischling

  • »chazon« ist der Autor dieses Themas

Beiträge: 56

Wohnort: Zons

  • Private Nachricht senden

6

10.07.2005, 15:01

Zitat von »"Mastermind"«

Zitat von »"TGGC"«

Debugger!


Das hat über dem Zitat durch "hätte" ersetzen.


Da hab ich nnun den Salat! :crying:

Ich mach mein ganzes Software Development auf meinem
Notebook. Und wie schon z.Zt diskutiert wird , hat diese Notebook
anscheinend nur eingeschränkte 3D Grafik-Fähigkeit.
Mit anderen Worten :
Ich programmiere und Kompiliere auf dem Notebook
Dann kopiere ich die Software auf einen Rechner mit 3D_Karte
dort wird es ausgeführt.

Nur das mit Debuggen stellt sich jetzt als sehr schwierig heraus
(Wobei ich gestehen muss, dass die Arbeit mit dem Debugger
nicht zu meinen Stärken gehört :rolleyes: )


Jedoch habe ich jetzt etwas festgestellt:

Ich progge gerade Modelle wie im Buch Kapitel 3
nun habe ich das Modell Ship.tbm an einer zweiten Stelle als
zusätzliches Modell eingebaut. So nun kommts:

Das erste Modell fliegt toll durch die Szene . Jedoch das 2. Modell
wird nur teilweise dargestellt ???

also irgendwie ist da der Wurm drin

chazon

Frischling

  • »chazon« ist der Autor dieses Themas

Beiträge: 56

Wohnort: Zons

  • Private Nachricht senden

7

10.07.2005, 16:38

So ! hab nu alles auf dem anderen rechner installiert


EDIT.


Prog bleibt in der Funktion CleanUp() bei
tbExit();
return TB_OK;
hängen

chazon

Frischling

  • »chazon« ist der Autor dieses Themas

Beiträge: 56

Wohnort: Zons

  • Private Nachricht senden

8

10.07.2005, 17:46

Es sieht auch so aus als würde die Nachrichtenschleife
tbDoMessageLoop()
nicht beendet werden.

Denn diese versucht immer wieder die Szene zu rendern
obwohl kein Fenster mehr da ist ???


EDIT: Auch Falsch : Schleife wird beendet . Aber danach ???

chazon

Frischling

  • »chazon« ist der Autor dieses Themas

Beiträge: 56

Wohnort: Zons

  • Private Nachricht senden

9

10.07.2005, 20:33

habs gefunden (glaub ich :wirbel: )

Danke für die Hilfe
Gruss Chazon

10

10.07.2005, 22:08

was war es denn?

Werbeanzeige