Dynamic Link Library (DLL) is vanuit het Engels vertaald als "dynamic link library". Een DLL is een uitvoerbaar bestand dat de functies van een gedeelde bibliotheek uitvoert. Door zijn dynamische koppeling biedt DLL een manier om een functie aan te roepen die deel uitmaakt van de uitvoerbare code.
De uitvoerbare functiecode zelf bevindt zich in een DLL, die verschillende gecompileerde, gekoppelde en opgeslagen functies in de gebruikte processen bevat. DLL dient om het proces van het delen van bronnen en gegevens te vereenvoudigen. Hiermee kunnen applicaties die op het systeem zijn geïnstalleerd, tegelijkertijd toegang krijgen tot meerdere inhoud van een enkele kopie van de DLL die in het geheugen is geladen.
Modulaire codering - de voorloper van DLL's
Het begin van het werk aan het maken van een DLL kan worden beschouwd als de opkomst van een dergelijke programmeermethode als modulaire codering. Ooit vergemakkelijkte modulaire codering het werk van programmeurs enorm, waardoor het mogelijk was om niet meerdere keren dezelfde code voor elk nieuw programma te schrijven. Alle eenvoudige programma's bevatten veel vergelijkbare code, die ze begonnen te ontwerpen in de vorm van modules, en ze toe te voegen aan nieuwe applicaties. Een tijdlang was modulair coderen de eenvoudigste en meest effectieve oplossing en had slechts één nadeel. Identieke modules die aan programma's werden toegevoegd, namen schijfruimte in beslag, wat in die tijd schaars was.
Het probleem van het verspillen van schijfruimte op identieke modules was het enige, terwijl er alleen single-tasking besturingssystemen waren. Met de komst van multitasking-besturingssystemen zoals Windows, deed zich een ander probleem voor. Nu begonnen programma's met modules met dezelfde code, wanneer ze tegelijkertijd werden gestart, deze in RAM te laden en alle bronnen "op te eten". Het is vermeldenswaard dat in die tijd een geheugenmodule van 500 megabyte de grootste was die er was en vrij duur. Maar zelfs de maximale grootte van RAM redde gebruikers niet, de programma's laadden het RAM volledig, waardoor normale computerwerking onmogelijk werd.
De opkomst van DLL's
Er werd een fatsoenlijke oplossing voor deze problemen gevonden, het zag er als volgt uit: modules met dezelfde code stopten met koppelen met het hoofdprogramma en sloegen ze op in een afzonderlijk uitvoerbaar bestand, dat indien nodig door elke toepassing kon worden geopend. Het is deze oplossing die de basis vormt van DLL's die dynamisch naar elk programma linken. Nu is het mogelijk om uitvoerbare code in deze bibliotheken op te slaan in de vorm van functies of procedures, afbeeldingen en zelfs video's, wat het mogelijk maakte om schijfruimte en RAM-bronnen te besparen.
Het enige nadeel van dynamische linkbibliotheken is de verspilling van extra tijd bij het laden van het programma. Naast dit kleine nadeel bestaat DLL alleen uit voordelen. Daarom worden deze bibliotheken veel gebruikt en worden ze door programmeurs in bijna elke toepassing gebruikt.