Absturz auf Notebook

Anfängerfragen zum Programmieren mit PureBasic.
Der-T
Beiträge: 65
Registriert: 06.05.2009 20:01

Absturz auf Notebook

Beitrag von Der-T »

Hallo,

bin neu hier. Ich beschäftige mich seit ein paar Monaten mit PureBasic und habe auch schon ein kleines Programm mit grafischen 2D-Elementen geschrieben. Mein Problem ist nun folgendes:
Auf meinem stationären PC (WinXP; SP3; via auto-update auf dem aktuellen Stand mit Ausnahme des IE8) läuft das ganze auch hervorragend.
Ich habe nun aber das Programm auf mein Notebook überspielt (Acer Extensa 5630Z; ebenfalls mit WinXP SP3 wie oben beschrieben). Hier stürzt das Programm jedoch ständig ab und zwar so deftig, dass es XP gleich mitreisst. Es kommt ein BlueScreen (Speicherabbild wird erstellt ...) danach folgt ein Neustart.

Eine vereinfachte Version meines Programmes, mit dem sich der Absturz jedoch wunderbar reproduzieren lässt sieht so aus:

Code: Alles auswählen

Enumeration #PB_Compiler_EnumerationValue
  #My_Enum
EndEnumeration
InitSprite()
InitSprite3D()
Sprite3DQuality(1)
UsePNGImageDecoder()
UseOGGSoundDecoder()
OpenScreen(1024,768,16,"Test")
file.s = GetCurrentDirectory() + "\test.pak"
If FileSize(file) > 0
  If OpenPack(file)
    If CatchSprite(#My_Enum, NextPackFile(), #PB_Sprite_Texture)
      ClosePack()
    EndIf
  EndIf 
EndIf
Immer bei CatchSprite stürzt es ab :cry:

Irgend jemand eine Idee, woran das liegen könnte? Wie geschrieben, auf stationärem PC läufts bestens.

Bin für jeden Antwort dankbar.
Gruß
Der-T
PB 4.50 RC2
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Mal probiert ob es eventuell an Nextpackfile() liegt?
Das also in eine eigene Zeile setzen und testen ob es da schon schief geht?
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Es wäre vllt noch gut wenn du zuerst überprüfst, ob die Adresse des Sprite existiert:

Code: Alles auswählen

If OpenPack(file) 
 *Adress = NextPackFile()
 If *Adress
  If CatchSprite(#My_Enum, *Adress, #PB_Sprite_Texture) 
   ClosePack() 
  EndIf 
 EndIf
EndIf
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Der-T
Beiträge: 65
Registriert: 06.05.2009 20:01

Beitrag von Der-T »

@Batze:
Muss gestehen, dass ich daran nicht gedacht hatte. Aber ich habe es gerade ausprobiert und NextPackFile() kann ich ausschlissen, da stürzt nichts ab.

@STARGÅTE:
Werde ich gleich mal probieren. Melde mich dann nochmal.

Ach ja, oben ganz vergessen zu erwähnen. In dem Pak-File befindet sich aktuell genau ein Sprite und es ist haar genau die gleiche Datei wie auf meinem stationären PC.
Gruß
Der-T
PB 4.50 RC2
Der-T
Beiträge: 65
Registriert: 06.05.2009 20:01

Beitrag von Der-T »

@Stargate:
Nein, leider nützt das auch nichts. Stürzt immer noch so ab wie oben beschrieben.

Dennoch vielen Dank für deine Antwort.
Gruß
Der-T
PB 4.50 RC2
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

Hast du es auch schon mit verschiedenen Packs versucht? Wie hast du rausgefunden das es genau in dieser Zeile abstürzt?
(\/) (°,,,°) (\/)
Benutzeravatar
memdee
Beiträge: 134
Registriert: 09.09.2004 18:49
Computerausstattung: Win 7 x64
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von memdee »

Moin,

hab genau das gleiche Problem auf meinem Thinkpad X61t (siehe: http://www.purebasic.fr/german/viewtopi ... highlight= ).

Probier mal, wie mir unter dem Link auch geraten wurde, mit aktiviertem DirectX 9 Subsystem zu kompilieren. Bei mir verursacht die Sprite3D-Library den Bluescreen.
Wenn das nichts hilft, geht's dir wieder genau wie mir: manche Befehle der File-Library verursachen den Absturz ebenfalls (siehe zweite Seite des verlinkten Threads; namentlich sinds DeleteFile() und TruncateFile()).

Schöne Grüße von einem Leidensgenossen!
meep?
Der-T
Beiträge: 65
Registriert: 06.05.2009 20:01

Beitrag von Der-T »

@KeyKon:
So etwas kann man mit Debuggen rausfinden, dafür ist der Debugger immerhin da. Auch wenn es bei OpenScreen nicht funktioniert, aber dafür gibts den WindowedScreen, damit gehts.

@memdee:
Hallo Leidensgenossen. Du hast mir sehr geholfen. Bezogen auf obiges Beispiel-Programm lässt sich duch das Umstellen auf DX9 ein Absturz verhindern. Leider funktioniert dann Sprite3DQuality nicht mehr, was IMHO deine Vermutung bestätigen könnte, dass es an der Sprite3D-Library liegt.

Wie sich das ganze auf mein richtiges Programm auswirkt werde ich aber erst morgen testen.

Allen nochmal vielen Dank für die Antworten.
Gruß
Der-T
PB 4.50 RC2
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

Der-T hat geschrieben:@KeyKon:
So etwas kann man mit Debuggen rausfinden...
Ich dachte es gibt einen BlueScreen?
EDIT: Aso, Gedankenblitz, per Step-By-Step^^
(\/) (°,,,°) (\/)
Der-T
Beiträge: 65
Registriert: 06.05.2009 20:01

Beitrag von Der-T »

KeyKon hat geschrieben:Ich dachte es gibt einen BlueScreen?
EDIT: Aso, Gedankenblitz, per Step-By-Step^^
Ist beides korrekt ;)
Daher auch der Hinweis mit dem WindowedScreen, denn bei einem Fullscreen funktioniert das mit dem Step-by-Step nicht....
Gruß
Der-T
PB 4.50 RC2
Antworten