Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Plötzlich lässt sich die -.exe nicht mehr ausführen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
George



Anmeldungsdatum: 21.02.2010
Beiträge: 13
Wohnort: Bremen

BeitragVerfasst am: 21.02.2010, 20:45    Titel: Plötzlich lässt sich die -.exe nicht mehr ausführen Antworten mit Zitat

Guten Tag, zusammen!

Ich arbeite seit ein paar Wochen mit FreeBASIC und bin eigentlich eher erfahren im "alten" QBASIC. Aber weil der DOS-Interpreter auf meinem Rechner nicht mehr läuft, muss ich jetzt wohl auf etwas "Moderneres" umsteigen und meine Spielprogramme neu auflegen.

Jetzt hänge ich fest! Ich habe einen Programmcode geschrieben, gespeichert und compiliert und dann ausgeführt - alles ohne Probleme. Jetzt wollte ich nach und nach die einzelnen Programmfeatures ergänzen und plötzlich lässt sich das Programm zwar noch ohne Fehlermeldung compilieren, aber es kommt nicht mehr zur Ausführung (jedenfalls nicht sichtbar). Nach dem letzten fehlerfreien Probelauf habe ich nur ein paar "Draw string.." Anweisungen ergänzt. Davon habe ich vorher schon dutzende eingesetzt. An der Syntax kann es m. E. nicht liegen. Einen "normalen" Laufzeitfehler (so etwas wie eine Endlosschleife) kann ich auch ausschließen.

Ich arbeite mit der FBIde, dem vor 2 Wochen downgeloadeten Compiler aus dem FB-Portal, mit Windows XP und Office 2000. (Das letzte erwähne ich, weil ich zwischen den Probeläufen eine ppt-Datei gestartet habe - aus anderen Gründen - und in meinem Programm mit dem Befehl "sreenres 1200,900,32,2" arbeite. - Also vielleicht ein Problem der Grafikwiedergabe(?)). Selbst nach dem Booten des Rechners, nach dem Neu-Installieren der IDE und des Compilers, läuft es immer noch nicht. Es sind inzwischen 225 Lines of Code - was ja eigentlich auch kein Problem sein dürfte.

Ich weiß nicht, wo ich weiterforschen soll. Ich bin natürlich auch mit dem Programmieren unter Windows-Umgebung und mit Compilern überhaupt ziemlich unerfahren.

Danke für einen Tipp!
Viele Grüße Georg
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Stueber



Anmeldungsdatum: 07.07.2008
Beiträge: 202

BeitragVerfasst am: 21.02.2010, 20:48    Titel: Antworten mit Zitat

Wenn du deinen Quelltext hier postest könnte man viel leichter helfen. lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4702
Wohnort: ~/

BeitragVerfasst am: 21.02.2010, 20:51    Titel: Antworten mit Zitat

Mit FBIde kenne ich mich nicht aus, weiß also nicht, wo du die unten aufgeführten Dinge einstellen oder auslesen kannst ...

Eine Möglichkeit wäre zunächst, das Programm mit der Option -exx zu kompilieren. Kommt es dann während der Programmausführung zu einem Fehler (der u. U. für einen Absturz verantwortlich ist), dann wird eine entsprechende Fehlermeldung zurückgegeben. Inwiefern FBIde diese Fehlermeldung dann anzeigt, weiß ich nicht; notfalls musst du das Programm halt über Konsolenfenster aufrufen.

edit:
Stueber hat Folgendes geschrieben:
Wenn du deinen Quelltext hier postest könnte man viel leichter helfen. lächeln

Bei über 200 Zeilen Code würde ich dazu aber einen NoPaste-Service empfehlen. lächeln
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
George



Anmeldungsdatum: 21.02.2010
Beiträge: 13
Wohnort: Bremen

BeitragVerfasst am: 21.02.2010, 21:58    Titel: Antworten mit Zitat

Danke, für die schnellen Antworten!

Ich habe mit diesem NoPaste-Service noch nie gearbeitet. Ich hoffe, ich habe alles richtig gemacht. Den Quellcode habe ich unter "Airport - ein unvollständiges Spielprogramm" upgeloaded.

Weiterhin habe ich bei der FBIde unter Einstellungen -> FeeBASIC in der Mitte "<$fbc>" -exx "<$file>" -s gui eingetragen. Den letzten Zusatz habe hinzugefügt, weil ich hier im Forum gelesen habe, dass dadurch das Konsolenfenster im Hintergrund verschwindet. Ich habe es auch schon probehalber wieder herausgenommen - ohne Erfolg.

Ein anderes Programm, das ich danach eingegeben habe funktioniert übrigens auch nicht (also die -.exe nicht). Dort werden einfach nur data-Werte mit einer for .. read.. next Zeile gelesen. Als ich dort gerade ein print "fertig" an den Schluss etzte kam die Fehlermeldung vom Compiler C:\FreeBASIC\bin\win32\ld.exe: cannot open output file C:\Projekte\Versuche\Versuch03.exe: Permission denied

Diese Meldung kommt aber bei Airport.bas nicht.

Gruß George
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4702
Wohnort: ~/

BeitragVerfasst am: 22.02.2010, 00:04    Titel: Antworten mit Zitat

Hier der Link.


Was vorneweg, was nichts mit dem Programmabsturz zu tun hat: In einer Schleife, die nur auf ein Ereignis (Tastatureingabe) wartet, solltest du noch ein
Code:
SLEEP 1

einfügen, um dem Prozessor ein bisschen Zeit für andere Programme zu geben.

Du hast in Zeile 22 ein
Code:
DIM shared as Integer Pa(1 to 236)

und in Zeile 159 ein
Code:
for i=1 to 237: Pa(i)=99: next

Das wird mit großer Wahrscheinlichkeit nicht gut gehen. zwinkern


Zitat:
C:\FreeBASIC\bin\win32\ld.exe: cannot open output file C:\Projekte\Versuche\Versuch03.exe

klingt so, als ob das Programm noch am Laufen wäre - schau vielleicht mal im Taskmanager nach.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
George



Anmeldungsdatum: 21.02.2010
Beiträge: 13
Wohnort: Bremen

BeitragVerfasst am: 22.02.2010, 19:54    Titel: Antworten mit Zitat

Sorry, den Link zum Quellcode habe ich vergessen!

Danke, nemored, für die Hinweise zum Quellcode. Ich habe es gerade korrigiert - und Oh Wunder! - es läuft. Kann es sein, dass so ein Verweis außerhalb des arrays das ganze Programm gar nicht erst starten lässt?

Ich Habe aber außerdem gestern noch bei Ansicht -> Einstellungen -> FreeBASIC in dem Kästchen "Compile-Befehl" den Zusatz "-s gui "herausgenommen. Könnte dass vielleicht der Teufel im Detail gewesen sein?

Jetzt steht in der Zeile Compile Befehl nur noch:
"<$fbc>" -exx "<$file>"
Ist das so der richtige (für mich optimale) Eintrag?

Jetzt habe ich heute den Rechner wieder eingeschaltet (also neu gebootet so zu sagen) und es funktioniert.

Allerdings kommt jetzt am Ende eine kleine Messagebox "Exit Code 0" (die war vorher nicht vorhanden). Was soll das? Ist dass so ähnlich wie bei C++ ein "return 0;" wenn alles glatt ging? Bei dem anderen Programm (das mit der Fehlermeldung ".. cannot open output file..") kommt nämlich jetzt ein "Exit Code 1"

Kann mir jemand dass erklären? - Danke!
George
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Stueber



Anmeldungsdatum: 07.07.2008
Beiträge: 202

BeitragVerfasst am: 22.02.2010, 20:36    Titel: Antworten mit Zitat

Jetzt da du den Fehler gefunden hast kannst du das -exx weg machen, dann sollte da keine MessageBox mehr sein.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4702
Wohnort: ~/

BeitragVerfasst am: 23.02.2010, 00:20    Titel: Antworten mit Zitat

Zitat:
Ist dass so ähnlich wie bei C++ ein "return 0;" wenn alles glatt ging?

Ja, genau.

Zitat:
Kann es sein, dass so ein Verweis außerhalb des arrays das ganze Programm gar nicht erst starten lässt?

Ich vermute eher, dass dein Programm zwar gestartet, aber dann so schnell wieder abgestürzt ist, dass man das gar nicht gemerkt hat. Ein Schreibzugriff auf einen unerlaubten Bereich erzeugt mit einer sehr hohen Wahrscheinlichkeit einen Absturz.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
George



Anmeldungsdatum: 21.02.2010
Beiträge: 13
Wohnort: Bremen

BeitragVerfasst am: 23.02.2010, 19:22    Titel: Antworten mit Zitat

Danke für die Hinweise!

Jetzt steht im NoPaste-System vom FreeBASIC-Portal noch mein fehlerhaftes Programm. Nicht das mich das stört, aber es ist immerhin fehlerhaft und für andere nicht zu gebrauchen (auch nicht zum Lernen). Ich habe aber keine Möglichkeit gefunden, es zu löschen.

Ist es okay, es einfach so stehen zu lassen?

Gruß George
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 23.02.2010, 19:28    Titel: Antworten mit Zitat

Hallo!

George hat Folgendes geschrieben:
Jetzt steht im NoPaste-System vom FreeBASIC-Portal noch mein fehlerhaftes Programm. Nicht das mich das stört, aber es ist immerhin fehlerhaft und für andere nicht zu gebrauchen [...] Ist es okay, es einfach so stehen zu lassen?

Ja, das ist überhaupt kein Problem. Ich würde das sogar als vorteilhaft ansehen, dass die hier besprochenen Quelltexte auch nach der Lösung des Problems noch einsehbar sind. Wenn sich später jemand anderes für das Problem und seine Lösung interessiert, ist das Material dann noch vorhanden. zwinkern

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz