Freigeben über


Vorteile der Verwendung von DLLs

Die dynamische Verknüpfung hat die folgenden Vorteile:

  • Sie spart Arbeitsspeicher und reduziert die Auslagerung. Eine einzelne DLL kann von vielen Prozessen gleichzeitig verwendet werden. Dabei wird eine einzelne, in den Arbeitsspeicher geladene Kopie der DLL gemeinsam genutzt. Im Gegensatz dazu muss Windows für jede mit einer Static Link Library erstellte Anwendung eine Kopie des Bibliothekscodes in den Arbeitsspeicher laden.

  • Sie spart Festplattenspeicher. Viele Anwendungen können eine einzelne, auf der Festplatte gespeicherte Kopie der DLL gemeinsam nutzen. Im Gegensatz dazu wird für jede Anwendung, die mit einer Static Link Library erstellt wurde, der Bibliothekscode als separate Kopie in deren ausführbares Bild eingebunden.

  • Sie vereinfacht das Upgrade der DLL. Wenn sich die Funktionen in einer DLL ändern, müssen die Anwendungen, die diese DLL verwenden, nicht neu kompiliert oder neu verknüpft werden, solange sich die Argumente und Rückgabewerte der Funktion nicht ändern. Im Gegensatz dazu erfordert ein statisch verknüpfter Objektcode, dass die Anwendung neu verknüpft wird, wenn sich die Funktionen ändern.

  • Sie ermöglicht die Unterstützung nach der Vermarktung. Eine Treiber-DLL für ein Anzeigegerät kann z. B. so geändert werden, dass ein Gerät unterstützt wird, das zum Zeitpunkt der Auslieferung der Anwendung noch gar nicht verfügbar war.

  • Sie unterstützt mehrere Programmiersprachen. Programme, die in verschiedenen Programmiersprachen erstellt wurden, können dieselbe DLL-Funktion aufrufen, solange sie die Aufrufkonvention der Funktion einhalten. Die Programme und die DLL-Funktion müssen in folgenden Punkten kompatibel sein: die von der Funktion erwartete Reihenfolge, in der Argumente auf den Stapel verschoben werden, ob die Funktion oder die Anwendung für das Bereinigen des Stapels verantwortlich ist und ob Argumente in Registern übergeben werden.

  • Sie bietet einen Mechanismus zur Erweiterung der MFC-Bibliotheksklassen. Sie können Klassen von bestehenden MFC-Klassen ableiten und diese in einer MFC-Erweiterungs-DLL speichern, die dann von MFC-Anwendungen genutzt werden kann.

  • Sie erleichtert die Erstellung von internationalen Versionen. Das Erstellen internationaler Anwendungsversionen wird erheblich vereinfacht, wenn Sie Ressourcen in einer DLL speichern. Sie können die Zeichenfolgen für jede Sprachversion der Anwendung in einer separaten Ressourcen-DLL speichern und die Versionen so einrichten, dass jede Sprachversion ihre eigenen Ressourcen lädt.

Ein möglicher Nachteil bei der Verwendung von DLLs liegt darin, dass die Anwendung nicht unabhängig ausgeführt werden kann; sie hängt von der Existenz eines separaten DLL-Moduls ab.

Was möchten Sie tun?

Worüber möchten Sie mehr erfahren?

Siehe auch

Konzepte

DLLs in Visual C++