Biblioteka dinamičkih veza (DLL) s engleskog je prevedena kao "knjižnica dinamičkih veza". DLL je izvršna datoteka koja izvršava funkcije zajedničke knjižnice. Kroz svoje dinamičko povezivanje, DLL pruža način pozivanja funkcije koja je dio izvršnog koda.
Sam izvršni kod funkcije nalazi se u DLL-u, koji sadrži nekoliko kompiliranih, povezanih i pohranjenih funkcija u procesima koji se koriste. DLL služi za pojednostavljivanje postupka dijeljenja izvora i podataka. Omogućuje aplikacijama instaliranim u sustavu da istovremeno pristupe višestrukim sadržajima jedne kopije DLL-a učitane u memoriju.
Modularno kodiranje - predak DLL-ova
Početkom rada na stvaranju DLL-a može se smatrati pojava takve programske metode kao što je modularno kodiranje. Svojedobno je modularno kodiranje uvelike olakšavalo rad programera, omogućujući da nekoliko puta ne napišu isti kod za svaki novi program. Svi jednostavni programi sadrže puno sličnog koda, koji su počeli dizajnirati u obliku modula, dodajući ih novim aplikacijama. Jedno je vrijeme modularno kodiranje bilo najjednostavnije i najučinkovitije rješenje i imalo je samo jedan nedostatak. Identični moduli dodani programima zauzimali su prostor na disku, koji je u to doba bio oskudan.
Problem gubljenja prostora na disku na identičnim modulima bio je jedini, dok su postojali samo operativni sustavi s jednim zadatkom. Pojavom multitasking operativnih sustava kao što je Windows, pojavio se još jedan problem. Sada su ga programi s modulima s istim kodom, istovremeno pokrenuti, počeli učitavati u RAM, "pojesti" sve resurse. Vrijedno je napomenuti da je u to vrijeme memorijski modul od 500 megabajta bio najveći koji je postojao i bio je prilično skup. No čak i maksimalna veličina RAM-a nije spasila korisnike, programi su RAM u potpunosti učitali, što je onemogućilo normalan rad računala.
Pojava DLL-ova
Pronađeno je pristojno rješenje za ove probleme, izgledalo je ovako: moduli s istim kodom prestali su se spojiti s glavnim programom, spremajući ih u zasebnu izvršnu datoteku kojoj je po potrebi mogla pristupiti bilo koja aplikacija. Upravo je to rješenje ono što čini osnovu DLL-ova koji se dinamički povezuju s bilo kojim programom. Sada je u te knjižnice moguće pohraniti izvršni kod u obliku funkcija ili procedura, grafike, pa čak i videozapisa, što je omogućilo uštedu prostora na disku i resursa RAM-a.
Jedini nedostatak knjižnica dinamičkih veza je gubljenje dodatnog vremena na učitavanje programa. Pored ovog manjeg nedostatka, DLL se sastoji samo od prednosti. Stoga se ove knjižnice široko koriste i koriste ih programeri u gotovo svakoj aplikaciji.