Das Konzept einer .dll in verschiedenen Programmiersprachen



  • Hallo Leute,

    In einem C++ Kompendium habe ich gelesen, dass eine .dll von mehreren Programmen gleichzeitig verwendet werden kann. Sie läuft als eigenständiger Prozess, wird dynamisch gelinkt und und ist sozusagen "shared", also nur einmal im Speicher (im Gegensatz zu .lib,die selektiv miteinkompiliert wird).

    In einem C# Buch habe ich gelesen, dass eine .dll nur dann "shared" ist, wenn man sie mit den entsprechenden Tools im Global Assembly Cache installiert.
    Ansonsten werden im .NET Framework .dlls wie .lib´s behandelt,also jedes Programm erhält eine Kopie davon. Aber gelinkt werden sie dynamisch und sind sie nun ein eigener Prozess oder nicht?

    In einem Visual Basic Kompendium habe ich gelesen, dass eine .dll ein sogenannter "in Process Server" ist (hier als Beispiel eine Active-X DLL) und deshalb ebenfalls pro zugreifendes Programm eine Instanz erzeugt wird. Aber die .dll wird eben nicht als eigenständuger Prozess ausgeführt.

    Wie kann man nun das Konzept einer .dll verallgemeinern? Dem Namen nach MUSS sie ja dynamisch gelinkt werden. Aber ansonten scheinen eben verschiedene Programmiersprachen dieses Konzept etwas unterschiedlich zu behandlen 😕

    Bitte bringt Licht in meine grauen Gedanken 😉



  • Ich bin mir nicht sicher, aber ich glaube die DLL Implementierung von Windows ist sehr strange, so dass die meisten DLLs doch für jeden Prozess in den Speicher geladen werden, da kein Prozess unabhängiger Code benutzt wird. Aber genau kenn ich mich mit Windows auch nicht aus.


Anmelden zum Antworten