Dynamic Link Library (DLL) è tradotto dall'inglese come "biblioteca di collegamento dinamico". Una DLL è un file eseguibile che esegue le funzioni di una libreria condivisa. Attraverso il suo collegamento dinamico, DLL fornisce un modo per chiamare una funzione che fa parte del codice eseguibile.
Il codice della funzione eseguibile stesso si trova in una DLL, che contiene diverse funzioni compilate, collegate e memorizzate nei processi in uso. DLL serve a semplificare il processo di condivisione di fonti e dati. Consente alle applicazioni installate sul sistema di accedere contemporaneamente a più contenuti di una singola copia della DLL caricata in memoria.
Codifica modulare: l'antenato delle DLL
L'inizio del lavoro sulla creazione di una DLL può essere considerato l'emergere di un tale metodo di programmazione come la codifica modulare. Un tempo, la codifica modulare facilitava notevolmente il lavoro dei programmatori, consentendo di non scrivere più volte lo stesso codice per ogni nuovo programma. Tutti i programmi semplici contengono molto codice simile, che hanno iniziato a progettare sotto forma di moduli, aggiungendoli a nuove applicazioni. Per un po', la codifica modulare è stata la soluzione più semplice ed efficace e presentava un solo inconveniente. Moduli identici aggiunti ai programmi occupavano spazio su disco, che a quei tempi era scarso.
Il problema dello spreco di spazio su disco su moduli identici era l'unico, mentre esistevano solo sistemi operativi a task singolo. Con l'avvento dei sistemi operativi multitasking come Windows, è sorto un altro problema. Ora i programmi con moduli con lo stesso codice, lanciati contemporaneamente, hanno iniziato a caricarlo nella RAM, "mangiando" tutte le risorse. Vale la pena notare che a quel tempo, un modulo di memoria da 500 megabyte era il più grande esistente ed era piuttosto costoso. Ma anche la dimensione massima della RAM non ha salvato gli utenti, i programmi hanno caricato completamente la RAM, rendendo impossibile il normale funzionamento del computer.
L'emergere delle DLL
È stata trovata una soluzione decente a questi problemi, sembrava così: i moduli con lo stesso codice hanno smesso di agganciarsi al programma principale, salvandoli in un file eseguibile separato, a cui è possibile accedere da qualsiasi applicazione secondo necessità. È questa soluzione che costituisce la base delle DLL che si collegano dinamicamente a qualsiasi programma. Ora è possibile memorizzare codice eseguibile in queste librerie sotto forma di funzioni o procedure, grafica e persino video, il che ha permesso di risparmiare spazio su disco e risorse RAM.
L'unico inconveniente delle librerie a collegamento dinamico è la perdita di tempo extra nel caricamento del programma. Oltre a questo piccolo inconveniente, DLL consiste solo di vantaggi. Pertanto, queste librerie sono ampiamente utilizzate e vengono utilizzate dai programmatori in quasi tutte le applicazioni.