Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
steini
Anmeldungsdatum: 17.09.2004 Beiträge: 58
|
Verfasst am: 17.09.2004, 16:46 Titel: qbasic - EXE schließt sich sofort wieder |
|
|
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 |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 17.09.2004, 16:53 Titel: Hm... |
|
|
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 _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
steini
Anmeldungsdatum: 17.09.2004 Beiträge: 58
|
Verfasst am: 17.09.2004, 17:07 Titel: |
|
|
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 |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 17.09.2004, 17:49 Titel: |
|
|
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 |
|
|
steini
Anmeldungsdatum: 17.09.2004 Beiträge: 58
|
Verfasst am: 17.09.2004, 18:09 Titel: |
|
|
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 |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
steini
Anmeldungsdatum: 17.09.2004 Beiträge: 58
|
Verfasst am: 17.09.2004, 19:40 Titel: |
|
|
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 |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
Bernd
Anmeldungsdatum: 14.09.2004 Beiträge: 498 Wohnort: Kulmbach
|
Verfasst am: 17.09.2004, 20:27 Titel: mal mit 4.5 probieren |
|
|
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 |
|
|
helium
Anmeldungsdatum: 10.09.2004 Beiträge: 397 Wohnort: Leverkusen
|
Verfasst am: 18.09.2004, 11:10 Titel: |
|
|
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 |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
steini
Anmeldungsdatum: 17.09.2004 Beiträge: 58
|
Verfasst am: 18.09.2004, 16:14 Titel: |
|
|
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 |
|
|
steini
Anmeldungsdatum: 17.09.2004 Beiträge: 58
|
Verfasst am: 18.09.2004, 16:56 Titel: |
|
|
...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 |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 18.09.2004, 17:28 Titel: bc.exe |
|
|
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 _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
Stormy
Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 18.09.2004, 18:18 Titel: |
|
|
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 |
|
|
steini
Anmeldungsdatum: 17.09.2004 Beiträge: 58
|
Verfasst am: 18.09.2004, 19:33 Titel: |
|
|
Wenn ich eure angeheitzte Diskussion über Compiler mal kurz unterbrechen dürfte...
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 |
|
Nach oben |
|
|
helium
Anmeldungsdatum: 10.09.2004 Beiträge: 397 Wohnort: Leverkusen
|
Verfasst am: 18.09.2004, 19:59 Titel: |
|
|
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 |
|
|
|