16-Bit Programm im DOS starten?



  • Was hat das mit 16 Bit zu tun?

    Du brauchst cwsdpmi.exe im Pfad (ist in dem erwähnten zipfile drin).



  • Der DJGPP erstellt 32Bit-Programme, die DPMI benötigen. Deshalb brauchst du einen DPMI Server, unter Windows ist der standardmäßig dabei, im puren DOS brauchst du z.B. cwsdpmi.



  • Und wo bekomme ich diese Datei her?

    Du brauchst cwsdpmi.exe im Pfad (ist in dem erwähnten zipfile drin).



  • bei Google, wenn keines beim DjGPP mitgeliefert wird, was ich fast nicht glauben kann.



  • Es war schon dabei...

    Aber wie compiliert man jetzt richtig ein "C" und ein "C++" programm mit cwsdpmi.exe ?

    Normalerweise gibt es zum kompilieren von C und C++ jeweils eine eigene EXE-DATEI...



  • Ich glaube ich habe die letzte Frage falsch formuliert! 😉

    ich versuche es jetzt richtig:

    beim Compilieren verwendet man:

    gcc -c -Wall myfile.c (for C source)
    gcc -c -Wall myfile.cc (for C++ source)

    beim Linken:

    gcc -o myprog.exe mymain.o mysub1.o mysub2.o (c)
    gxx -o myprog.exe mymain.o mysub1.o mysub2.o (c++)

    **und beim 16-bit-compilieren verwendet man? (Frage)

    cwsdpmi -c -Wall myfile.c (c-sourse)
    cwsdpmi -c -Wall myfile.cc (c++-sourse)
    

    und beim 16-bit-linken verwendet man? (Frage)

    cwsdpmi -o myprog.exe mymain.o mysub1.o mysub2.o (c)
    cwsdpmi -o myprog.exe mymain.o mysub1.o mysub2.o (c++)
    

    **

    ⚠ Die Frage lautet nun: Darf man bei c&c++ cwsdpmi.exe verwenden und habe ich die Befehle richtig geschrieben? ⚠

    Ich bitte hiermit um rasche AUFKLÄRUNG! 🙂

    mfG ©h (chille07)



  • Seit wann kann DJGPP 16 bit?

    Du sollst cwsdpmi.exe überhaupt nie aufrufen, du musst es nur im Pfad haben.



  • heisst das, ich soll dur die Datei dazukopieren, oder muss ich Dateien über diese Datei ausführen?

    und was ist mit:

    csdpmi*b.zip
    

    ?



  • So wie ich das verstanden habe sollst Du cwsdpmi überhaupt nicht aufrufen, und schon gar nicht hat es irgendwas mit dem Kompilieren an sich zu tun!
    Wie Du weißt ist DOS ein 16-Bit-Betriebssystem, und kann daher auch nur 16-Bit-Programme starten. DJGPP kompiliert aber immer 32-Bit-Programme. 💡
    Windows (> 3.11) bringt eine eigene DPMI-"Extension" mit, um dort auch direkt 32-Bit-Konsolenprogramme laufen zu lassen, DOS halt nicht. Von daher benötigt Dein Programm genannten DPMI-"Server", der quasi als Zwischenschicht dient, und mit dem dann auch DOS 32-Bit-Programme ausführen kann.

    🤡 👍



  • wenn du unbedingt beim djgpp bleiben willst, kannst du auch dieses noch testen
    http://www.delorie.com/djgpp/16bit/

    mit eigenen gcc und linker

    ansonsten: turbo c , oder tlite, die eignen sich ganz gut.


Anmelden zum Antworten