Differenza tra LIB e DLL

LIB vs DLL

Nello sviluppo del software, ci viene spesso chiesto se vogliamo utilizzare LIB o DLL nel contenere le funzioni per l'applicazione. LIB è una libreria statica in cui funzioni e procedure possono essere posizionate e chiamate mentre l'applicazione viene compilata. Una libreria DLL o Dynamic Link fa la stessa funzione ma è dinamica nel senso che l'applicazione può chiamare queste librerie durante l'esecuzione e non durante la compilazione. Questo presenta alcuni vantaggi significativi rispetto all'utilizzo di LIB.

Per i principianti, avresti un singolo file che è significativamente più grande in quanto contiene tutto il codice mentre avresti più file più piccoli quando usi la DLL. La compilazione di funzioni e procedure consente inoltre una maggiore riutilizzabilità come una volta che si è soddisfatti delle funzioni della DLL, poiché è possibile mantenerla come è con ogni versione dell'applicazione e non doverla confondere con essa. È anche possibile utilizzare la stessa DLL se si desidera creare un'altra applicazione che utilizza le stesse funzioni e procedure. È possibile collegare direttamente alla DLL piuttosto che copiare il codice dall'origine come si farebbe con LIB.

Un problema con DLL è quando si modifica il contenuto della DLL. Ciò può portare a problemi di versione in cui un'applicazione utilizza la versione errata della DLL che causa problemi. È necessario tenere traccia delle DLL per evitare questi problemi. Non avresti questo problema con LIB poichè otterresti solo un file di grandi dimensioni.

Durante lo sviluppo del software e la scelta della DLL, si avrà comunque un file LIB nel progetto. Ma a differenza di quando si usa LIB, questo file non contiene il codice delle funzioni e delle procedure ma solo gli stub che il programma deve chiamare le procedure dalla DLL.

Sommario:
1. Una DLL è una libreria che contiene funzioni che possono essere richiamate dalle applicazioni in fase di esecuzione mentre LIB è una libreria statica il cui codice deve essere chiamato durante la compilazione
2. Usando LIB risulterebbe in un singolo file che è considerevolmente più grande mentre si finisce con più file più piccoli con DLL
3. Le DLL sono più riutilizzabili di LIBs quando si scrivono nuove versioni o applicazioni totalmente nuove
4. I file DLL possono essere utilizzati da altre applicazioni mentre i file LIB non possono
5. Le DLL sono soggette a problemi di versionamento mentre LIB non lo è
6. Avresti comunque un file LIB quando sviluppi software con DLL ma contiene solo stub