Wie programmiert man zb Treiber oder Audio-Encoder?



  • Hi!

    Ich habe ein Buch zur Einführung in C++ gelesen und kenne mich jetzt auch mit den ganzen Funktionen,Variablen, etc. aus.
    Aber wenn man etwas machen will wie zum Beispiel etwas in die Konsole ausgeben, dann muss man immer irgendeine Library importieren.

    Aber wie werden denn Dinge wie zb MP3-Encoder oder Drucker-Treiber programmiert?

    Sowas kann man doch nicht erstellen in dem man variablen deklariert und while-schleifen benutzt?

    In welchen Sprachen sind denn die C++ Librarys geschrieben, ist <iosteam> auch in C++ geschrieben oder wie funktioniert das?

    fg, mocky 🙂



  • Die libs bauen zum größten teil aufeinander auf.
    Ganz am Anfang steht jedoch der assemblercode, falls du das meinst.
    Die grundlegenden Sachen sind alle in assembler.





  • Liegt der Quellcode der C++ Standard Library offen?

    Ich wäre nämlich interessiert welcher code, bzw. welche logik da hinter den einzelen funktionen steht.

    Gibt es vielleicht irgendwelche interessant Literatur zu dem Thema?
    Ich möchte jetzt nicht gleich Assembler lernen, ich möchte einfach nur verstehen was dahinter steckt bzw. was im computer eigentlich vorgeht wenn ich zB
    "cout << "Blablabla" << endl;" schreibe.

    fg, mocky



  • Ja, schau dir den Pfad an, der auf deine Includes verweist. Dort findest du die gewünschten Files. (Zumindes bei einem GNU Tool wie Dev C++)



  • Hiho! Interessante Fragen 🙂

    Um Treiber zu programmieren, muss man ab & zu wirklich Assembler verwenden, also Dinge machen, die nicht nur aus Variablen deklarieren und while-Schleifen schreiben. Weil man auf Hardware-Sachen zugreifen muss, auf die man mit C++ evtl. nicht hinkommt.
    Audio-Encoder sind anders. Die bestehen wirklich nur aus "reinem" C oder C++ oder irgend einer anderen hoeheren Programmiersprache. Such mit google mal den Quellcode von LAME (ein mp3-Encoder) oder von OGG-Vorbis, dann kannst du dich selbst davon ueberzeugen. Aber erwart nicht, die Quellcodes zu verstehen, die sind wesentlich komplizierter und laenger als Programme, die du bisher gesehen hast. Aber don't worry, da wachst du rein.

    Was den Quellcode von <iostream> & Co. angeht, du kannst z. B. die Implementation von GNU (u. a. im GCC-Compiler verwendet) hier anschauen: http://gcc.gnu.org/viewcvs/branches/gcc-3_3-branch/libstdc%2B%2B-v3/



  • Du kannst nahezu alles mit C oder C++ programmieren - das was du damit nicht kannst, kannst Du dann auch nur noch mit Assembler entwickeln(den kannst Du wiederum direkt einbetten). Du benötigst natürlich eine Schnittstelle um mit der Hardware zu kommunizieren. Dafür gibt es syscalls die von deinem bevorzugten OS bereitgestellt werden(denn auch mit Assembler kannst du unter den gängigen Betriebssystemen nicht direkt auf die I/O Funktionen deiner Hardware zugreifen).

    Lass Dich überraschen was man alles mit Variablen und Schleifen machen kann. 😉


Anmelden zum Antworten