16 Bit DOS Programme erstellen



  • Hallo Leute !

    Ich möchte ein Programm schreiben, dass ich in der Autoexec.bat von Win 98 aufrufen möchte.
    Benutze ich für mein Programm einen "modernen" Compiler, so kann ich es nicht unter DOS ausführen, weil alle neuen Compiler ja nur 32 BIT Betriebssysteme unterstützen (Wenn ich den Beitrag zu DOS aus den FAQ richtig verstanden habe. . .)

    Wo bekomme ich denn dann nun einen Freeware Compiler her, mit dem ich 16 BIT Anwendungen erstellen kann ? (Und zwar möglichst komfortabel)

    Kann mir jemand von euch eine Downloadadresse geben ?

    Vielen Dank



  • schau doch nochmal in die FAQ, da sind meherere aufgelistet! 🙄



  • Brauchst du wirklich einen 16-Bit-Compiler? Wenn du dein Programm sowohl unter Win98 als auch unter dem originalen DOS ohne Windows ausführen willst, brauchst du einen solchen.

    Soll das Programm dagegen ausschließlich unter Win98 laufen, erzeugst du einfach einer Konsolenprogramm. Das sieht aus wie ein DOS-Programm, kann aber mit jedem Windows-Compiler erzeugt werden.



  • Genau. In die AutoExec.bat kannst du jedes Win32-Proggi packen. Das wird dann automatisch beim Start von Windows ausgeführt.



  • Nee, nee, nee.

    Ich habe mein Programm ja schon fertig gehabt, und es in der Autoexec.bat starten wollen, aber es hat nicht funktioniert.
    (. . . so ´ne Sch#%&e!)

    In der WIN 98 Console läuft es einwandfrei.

    Jetzt habe ich mir bei Borland einen Turbo C++ Compiler von 1991 heruntergeladen, mit dem ich Programme erstellen kann, die ich auch in der Autoexec.bat ausführen kann (Hab ich schon ausprobiert).

    Leider kann ich nicht den Qellcode meines 32BIT Programms übernehmen, da der alte C++ Comiler scheinbar nicht mit strings klar kommt, obwohl er auch einen Header string.h hat.
    Jetzt kann ich mein Programm also wieder ganz von vorne beginnen, oder kennt eienr von euch eine Methode, wie ich "moderne" strings auf einem alten Compiler verwenden kann ?

    MFG



  • besorg dir am besten den djgpp 16Bit Port, da das imho eine aktuelle Portierung der GCC auf 16Bit DOS ist, also inklusive neuer Features wie templates und bla



  • Die 16bit Variante des DJGPP ist aber sehr instabil und unterstützt viele Dinge nicht (32 bit integer, float, double).
    Ist also völlig inaktzeptabel. Steht alles hier: http://www.delorie.com/djgpp/

    [ Dieser Beitrag wurde am 04.08.2002 um 01:38 Uhr von DrZoidberg editiert. ]



  • quake 1, 2 oder 3? 😃



  • @DrZoiberg

    Das Problem ist nur, dass er unbedingt einen 16Bit Compiler haben will und da ist der djgpp 16Bit wahrscheinlich das beste, wenn er ein aktueller gcc Port ist.



  • Mit dem Watcom-C Compiler oder Digital Mars sollte man problemlos 16-Bit-DOS Programme erstellen können.



  • @Kiamur: Die Header-Datei <string.h> des Borland-Compilers enthält nur Funktionen für Char-Array-Strings - sollte übrigens jeder Compiler so halten. Die std::strings findest du in der Header-Datei <string> von neueren C++-Compilern. Ich würde dir raten den Borland-Compiler zu nehmen und dir irgendwo eine "Standard C++ Libary" zu holen.

    Trotzdem wirst du kaum Dinge wie Templates oder Schlüsselwörter wie mutable in solchen Compilern vorfinden.

    MfG SideWinder



  • @Side:
    ich bezweifle, dass der Borland C++ von 1991 namespaces kennt 🙂

    Naja, ich wuerde wie mady den Digital Mars empfehlen!



  • Der Borland C++ Compiler ist imho kompatibel zur AT&T Sprachbeschreibung Nr.2.

    Dh. eigentlich ist es C mit Klassen (C with Classes, wie C++ am Anfang genannt wurde).

    Keine Namespaces, Templates (also auch keine std::strings), Fehlerbehandlung uvm.



  • Original erstellt von kingruedi:
    **@DrZoiberg

    Das Problem ist nur, dass er unbedingt einen 16Bit Compiler haben will und da ist der djgpp 16Bit wahrscheinlich das beste, wenn er ein aktueller gcc Port ist.**

    nein, er will einen Compiler, der Dos Programme erstellt, damit er sie in der Autoexec.bat ausführen kann. 32bit ist also völlig in Ordnung.



  • Das Problem ist nur, dass wenn die autoexec beim start abgearbeitet ist, ist windows noch nicht gestartet -> keine 32 bit



  • Ich glaube du verwechselst 32bit mit Windows.
    Es gibt 16bit Dos Programme, 32bit Dos Programme, 16bit Windows Programme(Win 3.1) und 32bit Windows Programme.
    Ein 32bit Dos Programm kann man problemlos von der Autoexec.bat aus starten.



  • 32bit-DOS-Programme? Von denen hab ich noch nie gehört...sicher, dass es ein DOS gibt, welches 32bit-Speicheradressierung unterstützt?

    MfG SideWinder



  • Wie ? Du hast noch nie was von Doom, quake1, duke nukem 3d und Tomb Raider 1 gehört ? Sind alles 32bit Spiele und trotzdem Dos Programme.

    Das Dos Betriebssystem muss keine 32bit unterstützen. Da ein Dos Programm vollen Zugriff auf die Hardware hat, kann es machen was es will, also auch in den 32bit Modus schalten.

    Der normale DJGPP Compiler kann nur 32bit Dos Programme erstellen(steht auch auf deren Website).



  • Hmm, da hast du offenbar recht.

    MfG SideWinder



  • Ähm ... Hallo Leute !

    Wie ich sehe, habe ich ja endlich mal ein zum Diskutieren anregendes Thema in dieses Board gestellt.

    Doch leider bin ich jetzt ganz schön durcheinander, gerade, was die letzten Beiträge betrifft.

    Wenn man also auch 32Bit Programme unter DOS ausführen kann, warum hat das dann bei mir nicht funktioniert ?
    Und warum funktionieren Programme, die ich mit dem Turbo C++ Compiler(16Bit) von Borland erstellt habe ?
    Also für mich sieht es klipp und klar so aus, dass unter DOS NUR 16 Bit kompilierte Programme laufen.

    Wenn es doch auch anders geht, dann hätte ich mir ja die Mühe umsonst gemacht mein schon komplett fertiges 32Bit Programm nochmal komplett neu zu schreiben, und das mit einer Entwicklungsumgebung, und Klassenbibliothek, die nicht so komfortabel ist.

    MFG Kiamur 😕


Anmelden zum Antworten