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

birdfreeyahoo

Alter Hase

  • »birdfreeyahoo« ist der Autor dieses Themas

Beiträge: 756

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

11

14.09.2012, 19:44

Das ist ein SystemClass Pointer, der in SystemClass als

C-/C++-Quelltext

1
static SystemClass* g_pApplicationHandle = 0;

definiert ist.

In WinMain wird ein SystemClass pointer erzeugt und Initialize aufgerufen (später auch weitere Methoden).
In der Definition von Initialize wird InitializeWindows aufgerufen (aus welcher CreateWindowEx aufgerufen wird).
Dort wird g_pApplicationHandle mit this initialisiert.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

12

14.09.2012, 19:50

Kann es sein, dass dieses SystemClass Objekt zum Zeitpunkt, da CreateWindowsEx() aufgerufen wird, bereits wieder zerstört wurde?
Wäre es möglich, dass du uns vielleicht mal das Projekt hochlädst (evtl. eine Minimalversion, die das Problem demonstriert), damit wir uns das mal direkt selbst anschauen können?

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

13

14.09.2012, 19:52

Überprüfst du, ob RegisterClass() erfolgreich ist?

birdfreeyahoo

Alter Hase

  • »birdfreeyahoo« ist der Autor dieses Themas

Beiträge: 756

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

14

14.09.2012, 20:52

Ich lads gleich hoch, aber zuerst:
Der Zeiger auf this wird nur in ShutdownWindows auf NULL gesetzt. Dieses wird nach Shutdown() aufgerufen und das wiederum von WinMain, wenn die MessageLoop beendet wurde. Davor muss das Fenster aber existieren.
Und ja, RegisterClass() ist erfolgreich.

birdfreeyahoo

Alter Hase

  • »birdfreeyahoo« ist der Autor dieses Themas

Beiträge: 756

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

15

29.11.2012, 15:22

Falls es noch jemanden interessiert, der Fehler lag auf der 1. Seite wo ich die Funktion "MessageHandler" postete.

Ich hab im switch-Zweig 'default' vor DefWindowProc kein return geschrieben.

Jetzt beim Shader einbauen gab das eine Fehlermeldung. Der Fehler war so simpel... :wacko:

Werbeanzeige