Bluescreen bei SDL Spiel
-
also der Compiler war eigentlich immer Mingw32 und der hat immer den Debug-Modus erstellt.
Mit dem Debugger taucht der Fehler ja nicht auf.
-
Ein echter Bluescreen? Sowas gibts noch?
So mit echtem CTRL-ALT-DEL zum Windows-neustarten?Wenn's im Debugger nicht auftritt und sonst schon, dann klingt das fuer mich nach uninitialisierten Variablen oder Zugriff auf Nullpointer bzw. schon geloeschtern Speicher. Der Debugger bzw. der Debugmodus sorgt naemlich manchmal dafuer, dass diese Dinge trotzdem gut gehen.
Zeig uns doch mal den Codeabschnitt, der den Absturz verursacht

-
ja doch tritt noch auf ich suchs morgen raus muss jetzt ins bett bin ziemlich müde
und das kann auch noch dauern bis ichs finde.
-
Ein echter Bluescreen? Sowas gibts noch?
So mit echtem CTRL-ALT-DEL zum Windows-neustarten?Ohh ja.. Habe immer noch regelmässig einen. Ich würde dir auch gerne mal einen abgeben, aber naja.. Hatte sogar mal einen, weil ich meine USB Maus angeschlossen habe..

@Topic:
Wow, das habe ich noch nie geschafft, dass ein Programm von mir einen Bluescreen erzeugt. Macht er den das IMMER?
-
naja also nur wenn ich es Starte wenn ich es nicht gerade neu kompiliert habe ansonsten (also wenn es neu kompiliert wurde) funktionierts
Hab übrigens festgestellt das es zu unterschiedlichen Zeiten abstürzt manchmal seh ich nichteinmal den Hintergrund manchmal schon.
-
Wie gesagt. Da hast du ein gröberes Problem.. Und da könnten wir nur raten, oder du zeigst mal ein bisschen Code, wo das zutrifft.
Um diese Stelle zu finden, musst du halt einfach mal Grosse Teile weglasse und wenn es immernoch zutrifft, dann hast du es ja schon mal ein wenig eingegrenzt. Und das machst du solange, bis du die betreffende Stelle hast.
Zum Beispiel: Wenn du Menü + Spiel hast, lässt du einfach mal das Menü weg und schaust, ob es immernoch passiert. Wenn ja, dann weisst du, dass es am Spiel liegt und nicht am Menü. (zur Sicherheit einfach mal umgekehrt verfahren. Vlt. liegts an beidem..) usw.
-
hmm also hab jetzt nur mal das Minimalprogramm(he he he) laufen lassen
das sieht so aus
:#include <SDL.h> using namespace std; int main(int argc, char *argv[]) { SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER); SDL_SetVideoMode (200, 200, 16,SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_FULLSCREEN); SDL_Quit (); return EXIT_SUCCESS; }und es stürzt trotzdem ab.
so langsam glaub ich das der fehler tiefer liegt....
-
Phu.. Das wird kaum an dir liegen.

Viel falsch machen kannst du da ja nicht.. Ich nehme mal an, dass du die Video Modi mal verändert hast..
Also ich würde jetzt einfach mal das Programm auf einem anderen PC ausführen, um zu schauen, ob es dort auch auftritt.
Hast du die neuste Version der SDL? - Ev. haben die noch Bugs mit Vista (oder umgekehrt..)
Dann würde ich auch mal noch auf den Treiber tippen. Lad ev. mal einen älteren runter und probiers mit dem.
-
ok anderer Vista-PC gleiches problem...
und ein alter Treiber hat auch net geholfen...
hmm ich weiß echt nicht woran es liegen könnte.
-
So ein Minimalprogramm sollte eigentlich nicht abstuerzen duerfen. Schon gar nicht mit einem BSOD. Verwendest du nicht die aktuelleste SDL-Version? Funktioniert das Spiel auf einem WinXP-Rechner? Sind die beiden Vista-Rechner auf den neuesten Stand? (Service-Packs, Treiber, ...)
-
Ist es zufaellig ein 64bit vista?
-
also es ist ein 32Bit Vista auf dem neusten Stand(incl. ServicePack),
neuste Sdl version wird auch verwendet und nen Xp-Pc hab ich gerade nicht in reichweite,Bericht wird aber bald folgen.
Danke für die Tipps bei diesem doch sehr aussichtslosen Thema.
-
Also ich würde jetzt auch einfach mal anderen Compiler ausprobieren. Und dann eventuell neuinstallation.
-
also mit visual studio 2005 hab ichs auch probiert,gleiches Problem,
meinst du mit der neuinstallation die sdl oder das ganze system??
-
Hmm.. Ich würde jetzt einfach mal bei einem Freund schauen, der etwa das gleiche System hat. Und mal dort kompilieren.
Oder mal von klein zu gross. Also SDL zuerst, dann VS, und erst dann System..
-
(Sorry wenn ich den Beitrag wieder raufhole, aber deine Frage scheint noch nicht beantwortet zu sein)
Ich hab selber lange mit SDL gearbeitet (auf Windows XP, DevC++) und hatte damit nie Probleme. Beim Versuch, die Programme auf Windows Vista auszuführen, kam jedoch ebenfalls immer ein Bluescreen, der den Neustart des Computers erforderte. Ein Bekannter von mir, der meine Programme auf Vista ausprobierte, hatte das gleiche Problem.
Deshalb vermute ich, es liegt nicht an deinem Code, sondern SDL ist möglicherweise nicht (oder nicht immer) kompatibel mit Windows Vista. Ich selber bin inzwischen auf SFML (VC++) umgestiegen, da ich mit SDL auch an die Grenzen der Performance gelangt bin. Mit SFML geht (zumindest bis jetzt) alles gut, es läuft auch auf anderen Betriebssystemen.
Falls du dich um keinen Preis von SDL abwenden willst, schlage ich ebenfalls vor, auf die neueste Version zu überprüfen und dich eventuell im Internet zu erkundigen, ob es dies ein häufiges Problem darstellt und eventuelle Lösungsansätze dazu vorhanden sind.
-
Oder es liegt einfach daran, dass du versuchts ein Fenster mit den Maßen 200*200 im Vollbild anzeigen zu lassen, was nicht möglich ist.
-
Wobei es da wahrscheinlicher ist, dass entweder eine andere Auflösung eingestellt wird oder auf den Vollbildmodus verzichtet wird, oder - wenn das Programm nicht ausführbar ist - zumindest eine Fehlermeldung kommt...
Bluescreen wäre wohl etwas übertrieben
Versuchs doch einfach mal ohne Fullscreen.
Edit: Ich glaube zwar nicht, dass es an dem liegt, aber ich hab bei deinem Code gerade noch was festgestellt - mach doch eine Oberfläche, in der du das Fenster erstellst:
SDL_Surface *Screen; Screen = SDL_SetVideoMode (200, 200, 16,SDL_HWSURFACE | SDL_DOUBLEBUF); // ohne Fullscreen // ... SDL_FreeSurface(Screen); // um dynamisch allokierten Speicher freizugeben
-
also fullscreen hab ich ganz als erstes ausgestellt.
aber die schilderung von nexus scheint ganz passend ich mach mich mal auf die suche.
(gut das ich nicht der einzige bin)