alternative zu int 21h



  • hey leute,
    in dem anderen thema hab ich gelesen von abc.w, dass man int 21h nicht mehr benutzen sollte, wollte die frage dort allerdings nicht stellen, weils off-topic wäre. Was sollte man denn stattdessen benutzen? Eine Windows dll? Wenn ja welche (für konsolenprogramme). evt. msvcrt.dll??

    Grüsse
    player424 🙂



  • Das hast du falsch verstanden. int 21h ist praktisch die "DOS-API". Wenn du also Programme fuer DOS schreibst, solltest/musst du die Funktionsaufrufe via int 21h nach wie vor benutzen. Was abc.w meint, ist, dass es heutzutage nicht mehr so besonders viel Sinn macht, DOS-Programme zu schreiben.
    Andere Betriebssysteme wie Windows oder Linux benutzen andere APIs. Windows benutzt dynamisch gelinkte Funktionsaufrufe (WinAPI - siehe msdn für eine Uebersicht) und Linux AFAIK letztendlich int 80h.
    Beachte auch "Unterschied: DOS / MS-DOS und Windows32-Konsole". Windows-Programme haben so oder so keinen Zugang zur DOS-API (Aufruf von int 21h crasht dein Programm mit einer exception), auch wenn sie in der Konsole laufen.



  • das heißt man sollte für moderne konsolenprogramme die Winapi benutzen? Bietet diese funktionen zum umgang mit der konsole an? (bzw. wie macht das ein c compiler auf low-level ebene)



  • Wenn dein Konsolenprogramm ein Programm fuer Windows (in Linux oder DOS gibt es auch Konsolenprogramme) ist, wirst du schlussendlich die WinAPI zur Kommunikation mit Windows benutzen muessen.
    Natuerlich bietet die WinAPI auch Funktionen zur Steuerung der Konsole. Siehe zB. die console reference in der msdn.

    Es gibt in Windows allerdings ein wildes Dickicht von Libraries und Funktionenansammlungen fuer jeden kleinen Dreck, und der zusaetzliche Haufen eben dieser, die in Hochsprachen wie C++ oder C gern noch zusaetzlich benutzt werden, macht die Sache auch nicht unbedingt uebersichtlicher.
    Die WinAPI bildet allgemein AFAIK aber noch immer die "unterste Ebene" als Schnittstelle fuer Programme ueber X Ebenen und Libs am Ende zum Betriebssystem.



  • aha also wenn ich das richtig verstanden habe bildet die WinAPI die unterste schicht für das alles (natürlich gibt es dabei noch die DOS Interrupts). Vielen dank für die hilfe
    grüsse
    player424

    P.S. wäre es z.B. möglich mir mit getstdhandle den handle zu holen und auf den zu schreiben?



  • Oeh, ja. Mit dem Handle des Konsolenfensters kannst du sogar mit normalen File-I/O-Funktionen (write) auf die Konsole schreiben.



  • gut danke nochmal für die hilfe


Anmelden zum Antworten