Program stürzt beim Start von CD ab :(

Für allgemeine Fragen zur Programmierung mit PureBasic.
Glow
Beiträge: 45
Registriert: 31.01.2005 01:36

Program stürzt beim Start von CD ab :(

Beitrag von Glow »

Hi

Ich habe ein recht dringendes Problem, was ich auch schon lokalisiert habe, mir jedoch pauschal keine Lösung einfällt:

Also ich habe ein Programm geschrieben, welches auch wunderbar funktioniert. Es werden Sounds geladen (Lieder im *.wav format) einige BMP´s usw.
Jetz habe ich das Programm auf CD gebrannt, und mit einer Autorun Funktion versehen. Leider geht es nun nichtmehr :( Wenn ich es von CD dann allerdings auf HD speichere, und den Schreibschutz der Dateien entferne, dann läuft es wieder.
Es müsste eigentlich an folgendem Befehl liegen:

Code: Alles auswählen

OpenFile(88,"data\xxx.txt")
Es scheint, als versuche PB da eine Schreiboperation durchzuführen (was ja schlecht geht auf einer CD :/)

Oder liegts vieleicht am:

Code: Alles auswählen

Closefile(88)
? Wenn ich das einfach weglasse, würde es dann gehen ?

Gibts es dafür eine schnelle Lösung ? Ist wirklich dringend :(

Edit: Argh - scheint wohl echt am Closefile zu leigen. Der Buffer wird auf Disk geschrieben...kann ich das umgehen ?

gruss
Glow
Benutzeravatar
Lebostein
Beiträge: 674
Registriert: 13.09.2004 11:31
Wohnort: Erzgebirge

Beitrag von Lebostein »

Du hast es erkannt. Openfile() versucht die Datei im Lese- und Schreibzugriff zu öffnen. Kein Wunder dass von der CD die Datei nicht geöffnet wird.

Um Dateien nur im Lesezugriff zu öffnen, musst du ganz einfach ReadFile() statt OpenFile() verwenden. :)
Glow
Beiträge: 45
Registriert: 31.01.2005 01:36

Beitrag von Glow »

Omg - Jaja...der Wald und die Bäume :| Danke für die schnelle Hilfe. Soweit läuft jetzt alles. Ich hab leider aber nur 2 Systeme zum Testen hier. Mir ist jetzt auf dem zweites System folgendes aufgefallen:

1. Obwohl der Bildschirm mit 800x600 geöffnet wird, ist alles ein bissel nach links vershoben. Als wäre die Bildschirmanzeige nicht richtig ausgerichtet. Desktop Einstellung ist 1024x768x16. Das ganze ist ein Röhrenmonitor.
Auf meinem Hauptsystem wekelt ein TFT (Desktop Auflösung 1280x1024x32) und da ist alles schön zentriert.

2. Auf dem Zweitsystem werden die Sprites nicht dargestellt :/ In der Kiste (Celeron 677Mhz) wekelt eine Onboard Graka Savage 3D die sich den Speicher vom RAM klaut. DX9 ist installiert. Ist die Savage eifnach zu alt dafür und es geht so oder so nicht, oder hab ich nen Fehler ?
Zuerst dachte ich, es liegt an der Auflösung der BMP´s, da ja früher galt: 16x16 / 32x32 usw. Es gehen aber auch Sprites nicht die 256x256x256 Aufklösung haben.

Gibts für die zwei Problemchen auch noch eine schnelle Lösung, oder muss ich darauf hoffen, daß der Betrachter ein aktuelles System hat ?

gruss
Glow
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Glow hat geschrieben:Zuerst dachte ich, es liegt an der Auflösung der BMP´s, da ja früher galt: 16x16 / 32x32 usw. Es gehen aber auch Sprites nicht die 256x256x256 Aufklösung haben.
is eben ne sache der Graka... etliche machen es, aber nicht alle.

du wirst in JEDER programmier- oder scripte-umgebung einen hinweis finden,
dass texturen in einem anderen format als quadratisch und zweierpotenz nicht auf allen Graka laufen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Glow
Beiträge: 45
Registriert: 31.01.2005 01:36

Beitrag von Glow »

Ja, das dachte ich mir schon. Was mich nur wundert, warum dann auch die regulären BMP´s (also 256x256x256 Farben) nicht funktionieren ?

gruss
Glow
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

öh... keine ahnung... ich denke, das müsste eigentlich klappen...

welche farbtiefe nimmst du denn für den 800x600 screen?

w/ monitor:

dein TFT emuliert die 800x600 nur, also ist das logischerweise schön zentriert.

manche röhrenmonis haben für die unterschiedlichen auflösungen unterschiedliche offsets...

bei meinem z.b. musste ich für jede neu benutzte auflösung offset und squeeze neu einstellen.

das tritt aber auch bei profi-spielen auf, ist also nicht dein problem :wink:
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Glow
Beiträge: 45
Registriert: 31.01.2005 01:36

Beitrag von Glow »

Farbtiefe bei 800x600 ist 16bit (weil die meisten Bilder auch in dieser Farbtiefe codiert sind - naja...mach ich halt einen Hinweis dazu daß man eine einigermassen aktuelle Grafikkarte braucht :)

gruss
Glow
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

eingermaßen aktuell? das konnte schon die graphikkarte die ich in meinem p133 hatte... kann man von außgehen, dass das heute jeder rechner kann.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

also, eine 256x256x8 grafik (256farben) müsste auf einem 800x600x16 screen eigentlich fehlerfrei funktionieren!

... vielleicht tritt hier aus anderen gründen ein bug auf, ich würd doch gern nochmal genauer drauf eingehen,
ich mag stolpersteine lieber genau beschrieben, damit alle sie meiden können...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten