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

41

18.12.2009, 20:05

In tbGUI::Exit (welches im Destruktor aufgerufen wird) gibt es nicht allzuviel Kandidaten, welche ungültig sein könnten. Guck mal, ob du nicht schon was davon löscht aus versehen.

42

18.12.2009, 20:14

Ich finde jetzt keine Stelle wo ich etwas davon lösche.
Vielleicht hilft das ja weiter:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-       m_pGUI  0x00000000 {m_pElements=??? m_iFocus=??? m_pVertexBuffer=??? ...}   tbGUI *
        m_pElements CXX0076: Fehler:    
        m_iFocus    CXX0030: Fehler: Ausdruck kann nicht ausgewertet werden 
        m_pVertexBuffer CXX0017: Fehler: Symbol "" nicht gefunden   
        m_pbButtons CXX0030: Fehler: Ausdruck kann nicht ausgewertet werden 
        m_pbOldButtons  CXX0030: Fehler: Ausdruck kann nicht ausgewertet werden 
        m_pfButtons CXX0030: Fehler: Ausdruck kann nicht ausgewertet werden 
+       m_Skin  {pSkinTexture=??? pEffect=??? pFont=??? ...}    tbGUISkin
        m_pImageEffect  CXX0017: Fehler: Symbol "" nicht gefunden   
        m_iCurrentPage  CXX0030: Fehler: Ausdruck kann nicht ausgewertet werden 
+       m_vCursorPos    {x=??? y=??? u=??? ...} tbVector2
+       m_vSize {x=??? y=??? u=??? ...} tbVector2
+       m_vScaling  {x=??? y=??? u=??? ...} tbVector2
        m_pMsgProc  CXX0030: Fehler: Ausdruck kann nicht ausgewertet werden 
+       m_aiKeyRepeat   0x000000e4  int [108]
        m_dwOldTime CXX0030: Fehler: Ausdruck kann nicht ausgewertet werden

43

18.12.2009, 20:34

?? Kanns sein, dass deine GUI schon gelöscht / Ungültig ist, wenn du sie löscht ?

44

19.12.2009, 09:46

Also ich lösche sie vorher nicht und ungültig scheint der Zeiger auch nicht zu sein =/

45

19.12.2009, 17:53

Ich habe jetzt mal einen Haltepunkt vor dem löschen der GUI erstellt
und da sind die GUI Werte alle OK.
Dass sie danach ungültig sind ist ja irgendwie logisch.

46

21.12.2009, 14:21

Merkwürdig =/.
Wenn ich implementiere, dass das Programm beendet werden soll,
wenn ich auf den Button klicke, klappt alles.

Hier auch mal das Logfile:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
INFO: TriBase-Engine wird initialisiert...   (tribase.cpp, Zeile 86, Funktion tbInit)
INFO: Initialisierung komplett! (tribase.cpp, Zeile 104, Funktion tbInit)
INFO: Der Konfigurationsdialog wird aufgerufen...   (tbconfig.cpp, Zeile 1050, Funktion tbDoConfigDialog)
INFO: Die Direct3D-Komponente wird initialisiert... (tbdirect3d.cpp, Zeile 162, Funktion tbDirect3D::Init)
INFO: Erstellen des Fensters... (tbdirect3d.cpp, Zeile 169, Funktion tbDirect3D::Init)
INFO: Initialisierung von Direct3D...   (tbdirect3d.cpp, Zeile 209, Funktion tbDirect3D::Init)
INFO: Die Initialisierung der Direct3D-Komponente ist abgeschlossen!    (tbdirect3d.cpp, Zeile 274, Funktion tbDirect3D::Init)
INFO: Texturmanager wurde initialisiert!    (tbtexturemanager.cpp, Zeile 43, Funktion tbTextureManager::Init)
INFO: Die DirectInput-Komponente wird initialisiert...  (tbdirectinput.cpp, Zeile 702, Funktion tbDirectInput::Init)
INFO: DirectInput-Schnittstelle wird generiert...   (tbdirectinput.cpp, Zeile 720, Funktion tbDirectInput::Init)
INFO: Initialisierung der Maus komplett!    (tbdirectinput.cpp, Zeile 662, Funktion EnumDevicesCallback)
INFO: Initialisierung der Tastatur komplett!    (tbdirectinput.cpp, Zeile 656, Funktion EnumDevicesCallback)
INFO: Die DirectInput-Komponente wurde erfolgreich initialisiert!   (tbdirectinput.cpp, Zeile 754, Funktion tbDirectInput::Init)
INFO: Die DirectSound-Komponente wird initialisiert...  (tbdirectsound.cpp, Zeile 45, Funktion tbDirectSound::Init)
INFO: DirectSound-Schnittstelle wird generiert...   (tbdirectsound.cpp, Zeile 56, Funktion tbDirectSound::Init)
INFO: Generiere primären Soundpuffer...    (tbdirectsound.cpp, Zeile 67, Funktion tbDirectSound::Init)
INFO: Die DirectSound-Komponente wurde erfolgreich initialisiert!   (tbdirectsound.cpp, Zeile 111, Funktion tbDirectSound::Init)
INFO: Nachrichtenschleife wird betreten...  (tribase.cpp, Zeile 179, Funktion tbDoMessageLoop)
INFO: Nachrichtenschleife beendet!  (tribase.cpp, Zeile 247, Funktion tbDoMessageLoop)
INFO: Die Direct3D-Komponente wurde heruntergefahren.   (tbdirect3d.cpp, Zeile 313, Funktion tbDirect3D::Exit)
INFO: Der Texturmanager wurde heruntergefahren. (tbtexturemanager.cpp, Zeile 59, Funktion tbTextureManager::Exit)
INFO: Die DirectInput-Komponente wurde heruntergefahren.    (tbdirectinput.cpp, Zeile 784, Funktion tbDirectInput::Exit)
INFO: Die DirectSound-Komponente wurde heruntergefahren.    (tbdirectsound.cpp, Zeile 128, Funktion tbDirectSound::Exit)
INFO: TriBase-Engine wird heruntergefahren...   (tribase.cpp, Zeile 113, Funktion tbExit)
INFO: Alle Speicherbereiche freigegeben!    (tbmemory.cpp, Zeile 116, Funktion tbMemExit)
INFO: Herunterfahren abgeschlossen! (tribase.cpp, Zeile 149, Funktion tbExit)

47

25.12.2009, 00:29

Soo hab das Problem jetzt gelöst.
Hab mir noch einmal ganz genau den Code von Galactica angeguckt
und siehe da: Kein einziges Mal wird in der MsgProc-Funktion
"SetGameState()" aufgerufen, sondern es wird nur eine globale
bool Variable auf true gesetzt und in der Move-Funktion
wird dann "SetGameState()" aufgerufen.

Danke für eure Hilfe ( nicht ironisch gemeint!)

mfg

Werbeanzeige