online 1
gast (50)

/ Forum / Anwendungen(Java,C++...)

Anwendungen(Java,C++...)Anwendungen(Java,C++...)

Fragevon TByte vom 03.07.2020, 16:21 Options

Wie funktioniert das mit den Librarys?

Hallo
Ich habe Tage und Nächte den Kopf darüber zerbrochen, wie es eigentlich gemacht wird. Als Beispiel C++ die Library iostream:
iostream ist eine Dati, vollgestopft mit C++ Befehlen! Aber wenn das selber auch C++ ist wie haben die denn das geschafft? Mit welchen Befehlen "erfinden" die neue Befehle? Also diese Librarys? Immer wenn ich was mit C++ mache, brauche ich diese Bibliotheken, egal was. Aber was ist, wenn ich meine eigene Library erfinden will? Wie mach ich das? Wie geht das überhaupt? Und ich rede hier nicht von diesen sinnlosen mathe-quatsch, sondern von echten, komplexen Sammlungen, wie z.B iostream (Ansteuern Monitor) oder mygba für GameBoyAdvance Programmierung.
Oder Javascript:
Es gibt eine Yahoo Bibliothek, wo man GetElementsByTagClass. Aber da es das nicht gibt, wie haben die gemacht???
Bitte helft mir, diese denklücke zu füllen!
mfg
TByte


Antwort schreiben

Antwort 1 von omg vom 10.07.2020, 12:10 Options

der TByte mal wieder ...
Was möchtest du denn überhaupt machen?
Die iostream Bibliothek ist eine ganz normale Bibliothek, nichts anderes als eine "sinnlose mathequatsch" Bibliothek, die Mthodfen bereitstellt um auf Dateien und Terminals zuzugreifen.
Das ganze fulnktioniert intern über Betriebssystem-Aufrufe.
Funktioniert so, dass man via Assembler einige Register mit den Parametern füllt und dann ein Interupt auslöst.
Damit brauchst du dich nicht zu beschäftigen, da es die Bibliothek schon gibt ... wobei du natürlcih die "andere Seite", also das Verarbeiten der Interupts bei deinem Betriebssystemprojekt bewerkstelligen musst.
Eine Javascript-Bibliothek müsste doch im Prinzip einleuchten ... diese stellt dann Methoden zur Verfügung um Javascript-Befehle auszuführen, wo ist da das Problem(brauchst du übrigends auch für dein Browserprojekt).
Die Bibliothek selber zu schreiben ist formal ganz einfach.
Du kompilierst sie und kannst dann komfortabel auf deine Funktionen zugreifen.
mfg

Antwort 2 von Supermax vom 10.07.2020, 12:19 Options

Libraries enthalten keine "Befehle", sondern nur Funktionen bzw. Klassen und deren Methoden sowie eventuell auch Daten (Ressourcen).

C/C++ hat nur sehr wenige "Befehle", wie "if", "while", "for" ... und "primitiven" Datentypen wie "int", "char", "float" etc... alles andere sind aus diesen zusammengesetzte bzw. abgeleitete Datenstrukturen und Funktionen.

Eine Bibliothek muss dabei nicht unbedingt in derselben Sprache geschrieben sein wie das Programm, mit der du sie verlinkst; solange die Aufrufkonventionen (wie werden Parameter übergeben und Rückgabewerte verarbeitet) standardisiert sind, kann eine Bibliothek etwa auch in Assembler, Pascal etc. geschrieben sein.

Antwort 3 von TByte vom 10.07.2020, 16:07 Options

Zitat:
kann eine Bibliothek etwa auch in Assembler, Pascal etc. geschrieben sein.

Ja, das wollt ich wissen.
Kann man denn z.B. eine JS Bibliothek in C++ schreiben?
mfg
TByte

Antwort 4 von Supermax vom 10.07.2020, 16:34 Options

Eine JavaScript-Bibliothek kann - derzeit - nur in JavaScript geschrieben werden, denn diese ist einfach nur eine JavaScript-Datei, die per <script>-Tag eingebunden wird und Funktionsdefinitionen, Klassen etc. enthält, auf die man dann zugreifen kann, als wären es Standardfunktionen von JavaScript.

Meine Aussage bezog sich nur auf Bibliotheken, die beim Kompilierungsvorgang (statisch) oder zur Laufzeit (dynamisch) an ein Programm gebunden werden, wie z.B. die .so oder .a-Dateien unter Linux oder .dll's unter Windows

Antwort 5 von TByte vom 10.07.2020, 17:42 Options

Aso, also DLLs sind also dynamische Header (zur Laufzeit)?
mfg
TByte

Antwort 6 von Jaja vom 10.07.2020, 18:14 Options

Zitat:
Aso, also DLLs sind also dynamische Header (zur Laufzeit)?


nein.. das sind bibliotheken. danach hattest du doch gefragt. header files sind was anderes und haben nur etwas mit der jeweiligen programmiersprache zutun...

Antwort 7 von Supermax vom 10.07.2020, 18:18 Options

DLLs (oder eben .a/.so-Dateien) enthalten die eigentlichen Funktionen, in den Headerdateien die im Quellcode included werden befinden sich die Definitionen der Datenstrukturen bzw. die Prototypen der Funktionen.

Antwort 8 von TByte vom 10.07.2020, 19:44 Options

Aso, danke
mfg
TByte

Antwort 9 von Jaja vom 10.07.2020, 19:58 Options

nochmal ein kleines modell: ;)

funktion() im quellcode [sprachabhängig]-->prototyp() im header file[sprachabhängig]-->(API)-->call() in bibliothek [betriebsystemabhängig && teilweise applikationsabhängig]-->(ABI)-->int() in systembibliothek [betriebsystemabhängig && plattformabhängig]

Ähnliche Themen

Funktioniert Nero 7 auf Vista?
fighter22  14.05.2007 - 121 Hits - 7 Antworten

externe Festplatte
herbi08  02.06.2008 - 75 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026