Problem mit PB4.11 und Kernel32.dll

Fragen und Bugreports zur PureBasic 4.0-Beta.
bizzl
Beiträge: 82
Registriert: 08.09.2005 18:07
Computerausstattung: AMD Athlon II X4 635
Windows 7 64 Bit
Wohnort: Nordhessen - früher : Südniedersachsen

Problem mit PB4.11 und Kernel32.dll

Beitrag von bizzl »

Wenn ich foldendes Programm laufenlasse:

Code: Alles auswählen

EnableExplicit

Enumeration 
#schiff=1

EndEnumeration

Define sx.l=640/2,sy.l=400,links.l=#PB_Key_Left,rechts.l=#PB_Key_Right,sspeed=2

If InitSprite()=0:End:EndIf
If InitKeyboard()=0:End:EndIf


OpenWindow(0,100,100,700,500,"Galaxy")
If Not OpenWindowedScreen(WindowID(0),0,0,640,480,0,0,0):End:EndIf
;If Not OpenScreen(640,480,32,""):End:EndIf


CreateSprite(#schiff,32,32)
;hier wird normalerweise mittels LoadSprite eun Sprite in 32*32 geladen
StartDrawing(SpriteOutput(#schiff))
Box(0,0,32,32,$808080)
StopDrawing()

Repeat
  FlipBuffers()
  ClearScreen(RGB(0,0,0))
  
  ExamineKeyboard()
  If KeyboardPushed(links)
    If sx>=sspeed
      sx-sspeed
    EndIf
  EndIf
  If KeyboardPushed(rechts)
    If sx<=640-32-sspeed
      sx+sspeed
    EndIf
  EndIf 
  DisplaySprite(#schiff,sx,sy)  
 
  
Until KeyboardPushed(#PB_Key_Escape) 
bekomme ich nach 4-5 mal starten folgende Fehlermeldung:

PUREBASIC0 verursachte einen Fehler durch eine ungültige Seite
in Modul KERNEL32.DLL bei 016f:bff9db61.
Register:
EAX=c00301a8 CS=016f EIP=bff9db61 EFLGS=00010206
EBX=0104fe28 SS=0177 ESP=00f4fdf0 EBP=00f5008c
ECX=00000000 DS=0177 ESI=00000000 FS=5b2f
EDX=bff76855 ES=0177 EDI=bff79198 GS=0000
Bytes bei CS:EIP:
53 8b 15 e4 9c fc bf 56 89 4d e4 57 89 4d dc 89
Stapelwerte:

Der Fehler tritt sowohl im Fullscreen- als auch im Winowedscreen-Modus auf.
Habe mit PB3.94 keinerlei Probleme, tritt nur bei PB4beta11 auf.
Ältere Betas hab ich leider nicht zum testen.
Ich benutze Win98SE auf PIII/667MHz mit 256 MB RAM und DirectX7,
tritt aber auch bei DirectX9 auf.
Könntet ihr das bitte mal testen?
Vielen Dank für eure Mühe.
Zuletzt geändert von bizzl am 27.04.2006 16:17, insgesamt 1-mal geändert.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Unter XP SP2 keine Probleme, nur das Bemerkungen nicht mit Doppelpunkt
eingeleitet werden und die CPU keine Luft bekommt :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
bizzl
Beiträge: 82
Registriert: 08.09.2005 18:07
Computerausstattung: AMD Athlon II X4 635
Windows 7 64 Bit
Wohnort: Nordhessen - früher : Südniedersachsen

Beitrag von bizzl »

Danke,Doppelpunkt geändert. :D

Wieso bekommt die CPU keine Luft?
Evtl. FlipBuffers(2) ???
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> Wieso bekommt die CPU keine Luft?
Weil sie zu 100% ausgelastet ist. Da ich mit Spielkram nichts am Hut habe,
kann ich Dir nicht sagen, wie man das ändert, vielleicht mit Delay?
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ein simples Delay(0) genügt, um der CPU luft zu machen...

ist allerdings für die entwicklungsphase zweitrangig und führt normal nicht zu fehlern...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
SoS
Beiträge: 340
Registriert: 29.08.2004 09:31
Kontaktdaten:

Beitrag von SoS »

1 mal pro Durchlauf ein Delay(0) reicht aus aber bei Spielen spielt die CPU-Auslastung eh keine so grosse Rolle . ;)

/edit

Da war wohl jemand schneller ...
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> aber bei Spielen spielt die CPU-Auslastung eh keine so grosse Rolle
Wenn Sie nicht im Fullscreen-Modus laufen schon
Mir reicht ja im allgemeinen Solitär :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Wenn Sie nicht im Fullscreen-Modus laufen schon

deswegen meinte ich ja

> für die entwicklungsphase zweitrangig


zu erwägen, ein spiel so zu schreiben, daß es im windowed-mode mit geringer CPU-auslastung laufen kann, führt bestimmt dazu, die zielgruppe zu vergrößern... ;)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Toshy
Beiträge: 713
Registriert: 22.03.2005 00:29
Computerausstattung: Computer und Strom vorhanden
Wohnort: LK Wolfenbüttel

Beitrag von Toshy »

@bizzl
Es wäre hilfreich wenn du sagen würdest welche Zeile den Feheler auslöst. Das zeigt dir doch der Debugger an.

Bisher ist bei mir (Windows98) auch noch kein Fehler aufgetreten.
1. Win10
PB6.1
bizzl
Beiträge: 82
Registriert: 08.09.2005 18:07
Computerausstattung: AMD Athlon II X4 635
Windows 7 64 Bit
Wohnort: Nordhessen - früher : Südniedersachsen

Beitrag von bizzl »

Der Fehler tritt auf, wenn ich das Programm mit Esc beende,
es gibt keine Fehlermeldung vom Debugger.
Gesperrt