Hi!
Welches minimale Betriebssystem wird für Consolen-EXE's vorausgesetzt?
Gibt es da eine Übersicht?
Konkret - ohne es ausprobiert zu haben: Läuft eine erstellte EXE auf auf dem aktuellen FreeDOS1.2?
(Oder muss ich hier weiterhin bei FreeBASIC bleiben? )
Schöne Grüße
Anforderungen für Console
Anforderungen für Console
Never change a running system - Never run a changed system!
(PB 6.03 LTS [x86])
(PB 6.03 LTS [x86])
Re: Anforderungen für Console
PB kann nur 32 Bit- und 64 Bit-Anwendungen kompilieren.
Wenn FreeDOS auch 32 Bit und vorallem MZ-/PE-Anwendungen ausführen kann, dann vielleicht.
Außerdem steht in jeder EXE-Datei folgende Anweisung drin:
Wenn FreeDOS auch 32 Bit und vorallem MZ-/PE-Anwendungen ausführen kann, dann vielleicht.
Außerdem steht in jeder EXE-Datei folgende Anweisung drin:
Ich vermute mal, dass es so nicht funktioniert. Es ist halt keine DOS-Anwendung, sondern nur eine Konsolenanwendung.This program cannot be run in DOS mode.
Re: Anforderungen für Console
Hab ich schon vermutet - wäre auch zu schön gewesen ein Tool für alles zu haben..
Danke.
(Unterstützung für ARM-Cores wäre allerdings eine super Sache.. )
Danke.
(Unterstützung für ARM-Cores wäre allerdings eine super Sache.. )
Never change a running system - Never run a changed system!
(PB 6.03 LTS [x86])
(PB 6.03 LTS [x86])
- Imhotheb
- Beiträge: 192
- Registriert: 10.10.2014 13:14
- Computerausstattung: Intel 8086, 640 KB RAM, Hercules Video Adapter, 2 x 5 1/4" 360kb Floppy, MS-DOS 3
- Wohnort: Wolfenbüttel
Re: Anforderungen für Console
Mit dem HX-DOS Extender sollten einfache win32 Programme auch unter FreeDOS laufen
https://de.m.wikipedia.org/wiki/HX_DOS_Extender
https://sourceforge.net/projects/hx-dos/files/
https://de.m.wikipedia.org/wiki/HX_DOS_Extender
https://sourceforge.net/projects/hx-dos/files/
weil einfach einfach einfach ist ... mach' ich es anders
Re: Anforderungen für Console
Nicht alles, was wie DOS aussieht, ist DOS.
Die "MS-DOS-Eingabeaufforderung"oder "cmd" von Windows ist schon lange kein DOS mehr. Auch wenn Laien hier immer von einem "DOS-Fenster" sprechen.
Die API, auf die das Programm zugreift, ist bei DOS eine völlig andere als bei Windows. Windows-EXE hat eine Weiche drin, wovon ein Pfad zum bereits erwähnten "This program cannot..."-Stub (für DOS) und der andere eben in das Windows-Programm führt. Das verhindert die versehentliche Ausführung von Windowsprogrammen unter DOS.
Rein theoretisch könnte man statt dem Stub eine zweite Implementierung für DOS einbinden. Dann hätte man eine Exe, die unter DOS und Windows gleichermaßen verwendet werden kann. Manche Tools aus früheren Windows-Zeiten haben davon Gebrauch gemacht.
Auf Win64- und Linuxsystemen könntest du DOS-Programme gar nicht ausführen.
DOS arbeitet nämlich mit nur 16-Bit (von irgendwelchen Tricksereien mal abgesehen und selbst dann wird zunächst auf 16-Bit ausgeführt, bis im weiteren Programmablauf die Umschaltung auf 32-Bit stattfindet.).
Lange Rede, kurzer Sinn:
Wenn du eine Konsolenanwendung kompilierst, dann läuft diese auf dem Betriebssystem, für welches du kompiliert hast. Der einzige Unterschied zu einem normalen Programm ist: Den Konsolenprogrammen fehlt die grafische Benutzeroberfläche bzw. die Benutzeroberfläche ist auf der Konsole realisiert.
Die Mindestanforderungen sind daher (IMHO) dieselben wie bei einer "normalen" Anwendung mit grafischer Benutzeroberfläche.
Ansonsten bestimmst du durch den Programmzweck und durch deine Programmiertechnik die Mindestanforderungen. Je ressorcensparsamer du arbeitest, desto geringer fallen sie aus. Es gibt Konsolenprogramme, die keinesfalls "alt" sind und die volle Leistung des PCs fordern (z.B. ffmpeg, welches auf einem 486er ewig vor sich hinnuckeln würde)
Bis XP runter geht PB meines Wissens. Über noch ältere Windowsversionen mache dir mal keine Sorgem
Benötigst du eine DOS-Anwendung? Dann ist PB die falsche Programmiersprache (PB kann nicht für DOS kompilieren). Du wirst auf ältere Programmiersprachen zurückgreifen müssen, die das Betriebssystem unterstützen (QBasic, Turbo-Pascal, Turbo-C, VisualBasic 1.0.... oder für aufwändige Sachen direkt Assembler).
Wenn du nur ein Programm möchtest, das ohne Windows funktioniert: Es gibt Linux-Distributionen, die keine grafische Benutzeroberfläche besitzen, aber einen modernen PC vollständig unterstützen.
Die "MS-DOS-Eingabeaufforderung"oder "cmd" von Windows ist schon lange kein DOS mehr. Auch wenn Laien hier immer von einem "DOS-Fenster" sprechen.
Die API, auf die das Programm zugreift, ist bei DOS eine völlig andere als bei Windows. Windows-EXE hat eine Weiche drin, wovon ein Pfad zum bereits erwähnten "This program cannot..."-Stub (für DOS) und der andere eben in das Windows-Programm führt. Das verhindert die versehentliche Ausführung von Windowsprogrammen unter DOS.
Rein theoretisch könnte man statt dem Stub eine zweite Implementierung für DOS einbinden. Dann hätte man eine Exe, die unter DOS und Windows gleichermaßen verwendet werden kann. Manche Tools aus früheren Windows-Zeiten haben davon Gebrauch gemacht.
Auf Win64- und Linuxsystemen könntest du DOS-Programme gar nicht ausführen.
DOS arbeitet nämlich mit nur 16-Bit (von irgendwelchen Tricksereien mal abgesehen und selbst dann wird zunächst auf 16-Bit ausgeführt, bis im weiteren Programmablauf die Umschaltung auf 32-Bit stattfindet.).
Lange Rede, kurzer Sinn:
Wenn du eine Konsolenanwendung kompilierst, dann läuft diese auf dem Betriebssystem, für welches du kompiliert hast. Der einzige Unterschied zu einem normalen Programm ist: Den Konsolenprogrammen fehlt die grafische Benutzeroberfläche bzw. die Benutzeroberfläche ist auf der Konsole realisiert.
Die Mindestanforderungen sind daher (IMHO) dieselben wie bei einer "normalen" Anwendung mit grafischer Benutzeroberfläche.
Ansonsten bestimmst du durch den Programmzweck und durch deine Programmiertechnik die Mindestanforderungen. Je ressorcensparsamer du arbeitest, desto geringer fallen sie aus. Es gibt Konsolenprogramme, die keinesfalls "alt" sind und die volle Leistung des PCs fordern (z.B. ffmpeg, welches auf einem 486er ewig vor sich hinnuckeln würde)
Bis XP runter geht PB meines Wissens. Über noch ältere Windowsversionen mache dir mal keine Sorgem
Benötigst du eine DOS-Anwendung? Dann ist PB die falsche Programmiersprache (PB kann nicht für DOS kompilieren). Du wirst auf ältere Programmiersprachen zurückgreifen müssen, die das Betriebssystem unterstützen (QBasic, Turbo-Pascal, Turbo-C, VisualBasic 1.0.... oder für aufwändige Sachen direkt Assembler).
Wenn du nur ein Programm möchtest, das ohne Windows funktioniert: Es gibt Linux-Distributionen, die keine grafische Benutzeroberfläche besitzen, aber einen modernen PC vollständig unterstützen.