Vantaggi dell'utilizzo delle DLL
Aggiornamento: novembre 2007
Il collegamento dinamico presenta i vantaggi descritti di seguito.
Consente un risparmio di memoria e una riduzione dello swapping. Più processi possono utilizzare contemporaneamente una sola DLL, mediante la condivisione di una sola copia della DLL in memoria. Al contrario, in Windows è necessario caricare in memoria una copia del codice della libreria per ogni applicazione generata con una libreria a collegamento statico.
Permette di risparmiare spazio su disco. Più applicazioni possono condividere una sola copia della DLL sul disco. Al contrario, in ogni applicazione generata con una libreria a collegamento statico il codice della libreria è collegato all'immagine dell'eseguibile come copia distinta.
Gli aggiornamenti della DLL sono più facili. Quando si modificano le funzioni di una DLL, non occorre ricompilare né ricollegare le applicazioni che utilizzano tali DLL, purché non siano stati modificati gli argomenti delle funzioni e i valori restituiti. Al contrario, il codice degli oggetti collegati in modo statico richiede che il collegamento dell'applicazione venga ripetuto quando si modificano le funzioni.
Facilita il supporto postvendita. È possibile, ad esempio, modificare una DLL del driver del monitor per supportare un monitor che non era disponibile quando è stata distribuita l'applicazione.
Supporta i programmi multilinguaggio. I programmi scritti in diversi linguaggi di programmazione possono chiamare la stessa funzione DLL purché seguano la convenzione di chiamata della funzione. I programmi e la funzione DLL devono essere compatibili e specificare i seguenti punti: l'ordine in cui la funzione prevede che i propri argomenti vengano inseriti nello stack, se la pulizia dello stack verrà effettuata dalla funzione o dall'applicazione e se alcuni argomenti vengono passati nei registri.
Fornisce un meccanismo per estendere le classi della libreria MFC. È possibile derivare le classi dalle classi MFC esistenti e collocarle in una DLL di estensione di MFC che verrà utilizzata dalle applicazioni MFC.
Facilita la creazione delle versioni internazionali. La collocazione delle risorse in una DLL semplifica la creazione delle versioni internazionali di un'applicazione. È possibile inserire le stringhe per ciascuna versione localizzata dell'applicazione in una DLL di risorsa separata e far sì che le diverse versioni carichino le risorse appropriate.
Un potenziale svantaggio nell'utilizzo delle DLL è dato dal fatto che l'applicazione non è indipendente, ma dipende dall'esistenza di un modulo DLL separato.