Programme modularisieren und flexibel verbinden

Was ist DLL - Dynamic Link Library?

| Autor / Redakteur: Ariane Rüdiger / Ulrike Ostler

DLLs dienen in Microsoft-Umgebungen zur Modularisierung von Programmen
DLLs dienen in Microsoft-Umgebungen zur Modularisierung von Programmen (Bild: djama - stock.adob.com)

Das Akronym DLL steht für Dynamic Link Library. Das klingt nach etwas, das Verbindungen ermöglicht. Doch was genau steckt hinter der Technik, und wie unterscheidet sie sich von APIs (Application Programming Interfaces)?

Der Begriff DLL (Dynamic Link Library) ist untrennbar mit Microsoft und seinen Betriebssystemen verbunden. DLLs sind Bibliotheken mit Code und Daten. Sie sind eine Microsoft-Methode, Programme flexibel miteinander zu verbinden und zu modularisieren. Dies geschieht, indem bestimmte Funktionen, beispielsweise die Anbindung von Endgeräten, in eine Sammlung selbständiger Programme ausgelagert werden, eben die DLL.

Braucht das Hauptprogramm die Funktion, die in einer zu einer DLL gehörigen Datei realisiert ist, ruft sie diese in dem Moment auf, in dem diese Funktion ablaufen soll. Das Programm übergibt der Datei die Daten, die mit deren Hilfe die jeweils gewünschte Funktion ausführt.

Treiber als bekannteste DLL-Variante

Eine wichtige Funktion von DLLs ist das Anbinden peripherer Systeme, etwa der unzähligen Typen von Druckern, Scannern, externen Festplatten, PC-Kameras, externen Lautsprecher und was es sonst noch geben mag. Die Dateierweiterung von Treibern ist in der Regel .drv.

Weitere Dateitypen sind ActiveX-Steuerelemente (.ocx) und Systemsteuerungsdateien (.cpl). Außerdem gibt es noch so genannte Ressourcen-DLLs, die lediglich den Zugriff auf Ressourcen eröffnen. Eine Datei, die auf ein Icon-Verzeichnis zugreift, endet im Microsoft-Umfeld beispielsweise mit der Dateierweiterung .ico.

Die Programme einer DLL funktionieren unabhängig von ihrer Dateiendung wie ablauffähige .exe-Dateien: Sie tun, was in ihnen codiert ist, sobald man sie aufruft, und zwar egal, von welchem Programm aus der Aufruf erfolgt, so lange dieses auf demselben PC und in derselben Betriebssystemumgebung läuft.

DLLs gibt es seit MS-DOS

Microsoft realisierte das DLL-Konzept schon in MS-DOS und blieb dabei. Ohne es hätte jedes einzelne Programm auf einem Rechner Funktionen, die sich heute in DLL-Komponenten finden fest in ihren Programmcode einbinden müssen. Diese Herangehensweise hätte erhebliche Nachteile.

So müsste der Code des Hauptprogramms jeweils geändert werden, wenn ein neues Endgerät installiert oder die entsprechende Funktion verändert werden soll. Die Folge: Softwaretechnischer Aufwand und Redundanz in den Programmen. Da war es nur logisch, immer wieder benötigte Funktionen in eine DLL auszulagern, auf die dann die gesamte Software zugreift.

API: Die große Schwester der DLL?

Was aber ist nun der Unterschied zum API (Application Program Interface)? Ist eine DLL einfach nur eine Unterform des API? So einfach ist es leider nicht. Beide Formen der Inter-Programmkommunikation haben eine Schnittmenge, lassen sich jedoch nicht sauber aufeinander abbilden.

Das Gemeinsame: API und DLL ermöglichen die Kommunikation zwischen Softwareprogrammen. So muss nicht jede Software alle Funktionen bereitstellen. Im Zeitalter verknüpfter Microservices statt monolithischer Programme wird das immer wichtiger: Microservices haben APIs, über die sie andere Funktionen beziehungsweise Microservices aufrufen.

APIs: Flexibler und vielfältiger

Flexibler als DLLs sind APIs, weil sie auch Software verknüpfen, die nicht auf derselben Hardware liegt. Es ist noch nicht einmal erforderlich, dass die über ein API verbundenen Programme im selben lokalen oder Firmennetz laufen oder dasselbe Betriebssystem nutzen. Sie können sich buchstäblich überall befinden. Hauptsache, die Vorgaben des API des aufgerufenen Programms werden von der aufrufenden Software eingehalten und es besteht eine ausreichende Kommunikationsverbindung.

Außerdem sind APIs vielfältig: Sie nutzen unterschiedliche Technologien je nach der Programmiersprache, in der sie verfasst sind. Java-APIs verwenden zum Beispiel bestimmte Objektklassen statt Dateien. DLLs bestehen ausschließlich aus Dateien, die sich analog zu .exe-Dateien verhalten und im Windows-Umfeld funktionieren.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45883289 / Definitionen)