Wozu braucht man Dll Dateien ???



  • Hallo,

    wozu braucht man Dll Dateien und was kann man alles mit Dll`s anfangen ???

    Danke
    doiv



  • Bist du zu faul um über google kurz zu suchen? 😡 😡 😡 😡



  • Um Funktionen in Dateien auszulagern, welche dann durch andere Programme benutzt werden können.
    Allerdings nur in Windows.



  • Dynamic Link Library, eine Windows-Datei mit Programmroutinen, auf die Programme zurückgreifen können. Spart Speicherplatz, da mehrere Programme diese Dateien nutzen und die Routinen nicht selbst besitzen müssen.

    Google 9.Treffer

    Gruß Ivo



  • Max M. schrieb:

    Um Funktionen in Dateien auszulagern, welche dann durch andere Programme benutzt werden können.
    Allerdings nur in Windows.

    Falsch!!!!!!!.

    Dies ist keine Erfindung von MS. Gibt es bei den Unices auch. Ein Dateiendung sagt nichts aus.
    Sinn dahinter ist nicht die Funktionen in Dateien auszulagern damit andere Programme sie nutzen können. Sinn ist das hier Speicher gespart wird. Wenn die DLL, Shared Object, oder wie auch immer man sie nennt in den Speicher geladen wurde (passiert durch ein Programm) dann brauchen andere Programme, welche ebenfalls die Funktionen benötigen diese nicht mehr laden da sie sich bereits im Speicher befinden.



  • Unix-Tom schreibt:

    Dies ist keine Erfindung von MS. Gibt es bei den Unices auch. Ein Dateiendung sagt nichts aus.
    Sinn dahinter ist nicht die Funktionen in Dateien auszulagern damit andere Programme sie nutzen können. Sinn ist das hier Speicher gespart wird. Wenn die DLL, Shared Object, oder wie auch immer man sie nennt in den Speicher geladen wurde (passiert durch ein Programm) dann brauchen andere Programme, welche ebenfalls die Funktionen benötigen diese nicht mehr laden da sie sich bereits im Speicher befinden.

    Dem stimme ich im wesentlichen zu. Aber...
    Unter Windows werden die DLL's nicht zwischen verschiedenen Programmen geshared. Jeder Prozess lädt die DLL in seinen Adressraum und andere Prozesse haben keinen direkten Zugriff darauf. Inbesondere werden so natürlich keine Informationen/Daten aus einer DLL von mehreren Prozessen gemeinsam genutzt



  • Die DLL wird auch unter Windows nur einmal geladen.
    In einer DLL kann man einen Shared Bereich einrichten den jedes Programm, welches die DLL nutzt und (wichtig ist hier der Name der DLL-Datei und der Speicherort), gemeinsam Benutzen kann.
    Hat man die gleiche DLL in einem anderen Ordner ist der Sharedbereich auch ein neuer.



  • Also ich verlass mich diesbezüglich mal auf Jeffrey Richter, der behauptet das DLLs in den Adressraum des jeweilgen Prozess geladen. Ob und wie das Betriebssystem diese DLLs verwaltet interessiert mich dabei nicht so sehr. Was bleibt ist das der Speicher der in der DLL allokiert wird dem Prozess gehört, ebenso wie alle globalen und statischen Variablen. Das es Techniken gibt um Speicher mit anderen Anwendungen zu sharen beschreibt er auch detailliert, aber...
    Jeffrey Richter schreibt:

    Da dies jedoch nicht die Standardtechnik in WIN32 ist bedarf es hiefür einiger zusätzlicher Schritte.

    Man beachte den Begriff: Standardtechnik

    In diesem Sinn glaube ich nicht dieses der Hauptgrund zur Entwicklung dieses Konzepts, von Microsoft für Windows, war. 😉

    mfg
    John Doe


Anmelden zum Antworten