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:

qbasic - EXE schließt sich sofort wieder

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



Anmeldungsdatum: 17.09.2004
Beiträge: 58

BeitragVerfasst am: 17.09.2004, 15:46    Titel: qbasic - EXE schließt sich sofort wieder Antworten mit Zitat

Hallo,

ich habe in qbasic ein ziemlich großes Programm geschrieben (in 4 Module unterteilt).
Die Dateigröße der kompilierten EXE betrug 399.535 Bytes und lief ohne Probleme.

Nun das Problem: Ich habe eine neue SUB hinzugefügt, habe ohne Fehlermeldung eine EXE erstellt, doch das Programm (Dateigröße der EXE nun 404.276 Bytes) schließt sich sofort wieder ohne irgendeine Meldung.

Es muss irgendwie mit der Dateigröße der Exe zusammenhängen, denn wenn ich die hinzugefügten 4kB irgendwo im Programm wieder wegnehme, lässt sich die EXE wieder starten.

Hat vielleicht jemand eine Erklärung dafür?

Betriebssystem WindowsXP
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 17.09.2004, 15:53    Titel: Hm... Antworten mit Zitat

Hallo.

Stell mal unter den Eigenschaften der EXE bei Speicher alles so hoch wie möglich. Weiterhin könntest du mal den Kompatibilitätsmodus versuchen.

Ich vermute aber irgendwie, dass es eher am Inhalt der Sub liegt; das sie also einen Fehler verursacht.

Kopier mal Folgendes in eine Batchdatei:
Code:
@echo off
NameDerExe.exe
pause<NUL


NameDerExe.exe muss durch den Namen der EXE ersetzt werden und die Batchdatei (Endung *.bat) muss in dasselbe Verzeichnis wie die EXE gespeichert werden.

Dann schau mal, ob da vielleicht was steht.

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | 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
steini



Anmeldungsdatum: 17.09.2004
Beiträge: 58

BeitragVerfasst am: 17.09.2004, 16:07    Titel: Antworten mit Zitat

Danke für die schnelle Antwort!

Speicher auf max und Kompatibilitätsmodus brachten nichts.
Die Ausgabedatei war auch leer.
Und fehlerhaft ist die Sub auch nicht, denn es ist egal welche Sub des Programms ich lösche, sobald die alte Dateigröße wieder erreicht ist startet die EXE. Packen der Exe habe ich auch schon versucht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 17.09.2004, 16:42    Titel: Hm... Antworten mit Zitat

Hallo.

Das ist aber seltsam. verwundert
Naja - Ich überlege nochmal ein bisschen. zwinkern

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | 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
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 17.09.2004, 16:49    Titel: Antworten mit Zitat

funktioniert das Programm mit der neuen Sub denn unkompiliert?
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
steini



Anmeldungsdatum: 17.09.2004
Beiträge: 58

BeitragVerfasst am: 17.09.2004, 17:09    Titel: Antworten mit Zitat

Unkompiliert funktioniert das Programm schon lange nicht mehr, da er dann aufgrund von Speichermangel bei der ein oder anderen shell-Anweisung hängen bleibt.

Das seltsame ist ja, das das Kompilieren OHNE Fehlermeldung funktioniert, die EXE will halt scheinbar nur ab einer bestimmten Dateigröße (irgendwas zwischen 390 und 394kB) nicht mehr starten.
Hab in dem Prog auch eine funktionierende Fehlerroutine, aber wie gesagt: da tut sich überhaupt nichts!

Auf einem anderen XP-Rechner war das selbe Problem.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 17.09.2004, 17:53    Titel: ... Antworten mit Zitat

Hallo.

1. Funktionierts denn unter W9x?
2. Benutzt du QB 7.1? Wenn nicht, probier das auf jeden Fall mal.

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | 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
steini



Anmeldungsdatum: 17.09.2004
Beiträge: 58

BeitragVerfasst am: 17.09.2004, 18:40    Titel: Antworten mit Zitat

Ja ich benutze QuickBasic 7.1
Unter Win98SE das selbe Problem, hier allerdings folgende Fehlermeldung:

"Diese Anwendung wird aufgrund eines unzulässigen Zugriffs beendet. Alle Anwendungen beenden und Computer neu starten."

Als ich dann eine alte Sub, die auch 4kb hatte, gelöscht habe funzte wieder alles, auch mit der neuen sub.

Wie schon gesagt, dieser Fehler ist unabhängig vom Inhalt des Programms, scheinbar unabhängig vom Betriebssystem, unabhängig vom Computer und scheint nur von der Exe-Größe abzuhängen.

Ich hab echt keine Ahnung mehr!!!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 17.09.2004, 19:26    Titel: Dann Antworten mit Zitat

Hallo.

Dann würde ich das Ganze auf verschiedene EXE Dateien aufteilen. Am besten du schreibst die gemeinsam benutzten Variablen in eine Datei und rufst die einzelnen EXEn dann mit SHELL "..." untereinander auf. zwinkern
Also nicht die 4 Module zusammenkompilieren, sondern vielleicht immer 2 zusammen.

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | 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
Bernd



Anmeldungsdatum: 14.09.2004
Beiträge: 498
Wohnort: Kulmbach

BeitragVerfasst am: 17.09.2004, 19:27    Titel: mal mit 4.5 probieren Antworten mit Zitat

das war bei mir mal, hatte zwar deutlich weniger code, aber trotzdem, lad dir mal die 4.5 version runter

viel glück
_________________
Neue Homepage: http://www.glubb.rockt.de

UND

Der Wahnsinn hat seine eigene Homepage: http://pulmollwand.rulz.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
helium



Anmeldungsdatum: 10.09.2004
Beiträge: 397
Wohnort: Leverkusen

BeitragVerfasst am: 18.09.2004, 10:10    Titel: Antworten mit Zitat

Meine erste Idee ist zu wenig konventioneller Speicher, so dass die EXE nicht mehr geladen werden kann. Tipp mal mem ein, dann siehste, wieviel dir zur verfügung steht. Darain muss dann die Exe-Datei (um ausgeführt werden zu können) und alle Variablen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 18.09.2004, 10:21    Titel: Ja, kann sein. Antworten mit Zitat

Hallo.

Das kann gut sein. Deshalb auch mein Tip, alle Speichereigenschaften so hoch wie möglich einzustellen.
Vielleicht sollte er auch '$DYNAMIC benutzen und mit der Option /Ah arbeiten. verwundert

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | 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
steini



Anmeldungsdatum: 17.09.2004
Beiträge: 58

BeitragVerfasst am: 18.09.2004, 15:14    Titel: Antworten mit Zitat

Hallo.

Also wenn ich mem eingebe erscheint folgendes:

655360 Bytes gesamter konventioneller Speicher
655360 Bytes f?r MS-DOS verf?gbar
627488 maximale GrӇe f?r ausf?hrbares Programm

1048576 Bytes gesamter fortlaufender Erweiterungsspeicher
0 Bytes fortlaufender Erweiterungsspeicher verf?gbar
941056 Bytes XMS-Speicher verf?gbar
MS-DOS ist resident im oberen Speicherbereich (HMA).

Wenn ich qbx mit Option /Ah starte und dann kompiliere, startet nichtmal mehr meine ursprüngliche kleinere EXE!

Wozu ist eigentlich die Debug-Funktion /D beim Kompilieren? Habe nämlich gelesen, dass man die bei modularen Programmen aktivieren sollte. Allerdings brach bei eingeschaltetem Debug die Kompilierung im ersten Modul mit "program-memory overflow" ab, ohne Debug erstellte er die Exe und das Programm lief ohne Probleme (das bezieht sich jetzt auf meinen ursprünglichen code und Starten von qbx ohne /Ah)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
steini



Anmeldungsdatum: 17.09.2004
Beiträge: 58

BeitragVerfasst am: 18.09.2004, 15:56    Titel: Antworten mit Zitat

...ich würds ja gerne mal mit einem anderen EXE-Compiler versuchen,

kennt da jemand einen anderen als den, der in qb71 und qb45 integriert ist?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 18.09.2004, 16:28    Titel: bc.exe Antworten mit Zitat

Hallo.

EXE-Compiler, um aus BAS-Dateien OBJ-Dateien zu machen, gibt es nur von Microsoft.
Linker, um aus OBJ-Dateien EXE-Dateien zu machen, gibt es hingegen von einigen Anbietern. Was davon meist du denn?

Dein Problem könnte noch 2erlei Lösungswege haben:
- Benutzung einer EMS/XMS Lib (www.iconsoft.de), um die Variablen im EMS/XMS abzulegen und dadurch konventionellen Speicher zu sparen
- Portieren des Programms nach VBDOS. Das dürfte 0 Aufwand sein, du hast viel mehr Features und hast mit der Programmgröße keine sonderlichen Probleme mehr. (VBDOS ist 100% kompatibel zu QB Programmen!)

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | 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
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 18.09.2004, 16:43    Titel: Antworten mit Zitat

Nein, es gibt auch andere Compiler... musst einfach nur paar englischsprachige QBasic-Seiten durchschauen !
_________________
+++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 18.09.2004, 16:55    Titel: Hä? Antworten mit Zitat

Hallo.

Wo gibt es denn QBasic-Compiler, die nicht von Microsoft sind? Ich meine nicht BlitzBasic oder sowas, sondern richtiges QB!

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | 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
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 18.09.2004, 17:18    Titel: Antworten mit Zitat

QBasic-Compiler gibts nur von M$, da ein anderer es nicht QBasic nennen dürfte. Nur, da es ja eigentlich normales Basic ist dürfte es andere allgemeine Basic-Compiler geben, die das compilen können und nicht von M$ sind.
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
steini



Anmeldungsdatum: 17.09.2004
Beiträge: 58

BeitragVerfasst am: 18.09.2004, 18:33    Titel: Antworten mit Zitat

Wenn ich eure angeheitzte Diskussion über Compiler mal kurz unterbrechen dürfte... grinsen

Danke für den Tip mit VBDOS!!! Das hat den Code in der Tat anstandslos 1:1 übernommen, nagut, ein paar Variablenbezeichnungen wie "Year%" und "Day%" musste ich umbenennen, weil die nun offensichtilich für die erweiterten Funktionen reserviert waren.

Und auch meine erstellte EXE lief mit allem drum und dran, hatte vermutlich mit den Parametern des Kompilers zu tun, die bei VBDOS standardmäßig anders eingestellt zu sein scheinen als bei QuickBasic... aber ich werde mir nun ganz bestimmt nicht noch Gedanken darüber machen wieso es funktioniert

Also nochmal besten Dank für die Anteilname und ich empfehle echt den Umstieg auf VBDOS - wie gesagt, eure alten codes werden anstandslos übernommen!

Hier der Download-Link: http://imaginatica.eii.us.es/~wopr2k/qbdl/
Bis zum nächsten Problemchen lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
helium



Anmeldungsdatum: 10.09.2004
Beiträge: 397
Wohnort: Leverkusen

BeitragVerfasst am: 18.09.2004, 18:59    Titel: Antworten mit Zitat

MisterD hat Folgendes geschrieben:
QBasic-Compiler gibts nur von M$, da ein anderer es nicht QBasic nennen dürfte. Nur, da es ja eigentlich normales Basic ist dürfte es andere allgemeine Basic-Compiler geben, die das compilen können und nicht von M$ sind.


Es gibt standardisiert Sprachen und proprietäre Sprachen.

C++ ist beispielsweise standardisiert. Es existiert ein ISO, den du bei ANSI, BSI, DIN, ... beziehen kannst (ich meine das sind du um die 20?). Verschidene Firme bauen Compiler und andere Tolls dem standard entsprechend.

QBasic ist eine proprietäre Sprache, für die kein Standard existiert. Es gibt nur einen Hersteller (Microsoft).

Generell gibt es verdammt viele Basics (werden Dialekte genannt). Diese basieren alle auf der selben Synthax, modifizieren und/oder erweitern diese aber.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. 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