Differenza tra DLL e LIB

DLL vs LIB

Una libreria è una raccolta di risorse che possono essere utilizzate per sviluppare applicazioni. Una libreria di solito è composta da subroutine, funzioni, classi, valori e tipi. Durante il processo di collegamento (solitamente eseguito da un linker), le librerie e gli eseguibili fanno riferimento l'un l'altro. I file di libreria sono suddivisi in librerie statiche e dinamiche a seconda del momento in cui le subroutine vengono caricate nell'applicazione di destinazione. Di conseguenza, i file LIB sono librerie collegate staticamente e i file DLL sono librerie collegate dinamicamente.

Cos'è la DLL?

Dynamic Link Library (più comunemente noto come DLL) è un'implementazione di libreria condivisa sviluppata da Microsoft. Usa le estensioni .dll, .ocx o .drv e sono usate nei sistemi operativi Microsoft Windows e OS / 2 ... dll è usato dai normali file DLL. L'estensione .ocx viene utilizzata dalle librerie contenenti controlli ActiveX e l'estensione .drv viene utilizzata dai file del driver di sistema legacy. Il formato file DLL è uguale ai file EXE di Windows (file eseguibili portatili su Windows a 32 bit / 64 bit e Nuovo eseguibile su Windows a 16 bit). Pertanto, qualsiasi combinazione di codice, dati e risorse può essere contenuta nei file DLL (proprio come nei file EXE). Come dato di fatto, i file di dati con il formato di file DLL sono chiamati DLL di risorse. Le librerie di icone (con estensione .icl) e i file di font (con estensione .fon e .fot) sono esempi di DLL di risorse.

I componenti chiamati sezioni costituiscono una DLL e ogni sezione ha i propri attributi come sola lettura / scrivibile ed eseguibile / non eseguibile. Le sezioni di codice sono eseguibili, mentre le sezioni di dati non sono eseguibili. Le sezioni di codice sono condivise e le sezioni di dati sono private. Ciò significa che tutti i processi che utilizzano la DLL utilizzeranno la stessa copia del codice, mentre ogni processo avrà una propria copia dei dati. La libreria dinamica principale per Windows è kernel32.dll, che contiene le funzioni di base (funzionalità relative a file e memoria) su Windows. COM (Component Object Model) è l'estensione della DLL a OOP (Object Oriented Programming). Le DLL convenzionali sono più facili da usare rispetto ai file COM.

Cos'è la LIB?

I file LIB sono librerie statiche (note anche come librerie collegate staticamente). I file LIB contengono una raccolta di subroutine, funzioni esterne e variabili. I file LIB vengono risolti in fase di compilazione (anziché in fase di esecuzione). Il codice viene effettivamente copiato nell'applicazione di destinazione. Un compilatore, un linker o un raccoglitore farà questa risoluzione e produrrà un file oggetto e un file eseguibile. Questo processo è chiamato processo di generazione statica.

Qual è la differenza tra DLL e LIB?

Le librerie LIB possono essere chiamate durante la compilazione, ma le librerie DLL possono essere chiamate solo durante l'esecuzione. I file LIB sono significativamente più grandi dei file DLL. Un problema molto comune con i file DLL è il problema delle versioni. Ciò accade quando il codice della DLL viene modificato e l'applicazione utilizza una versione errata di una DLL. Questo non è un problema associato ai file LIB. In termini di riusabilità, quando si scrivono nuove versioni di sistemi o applicazioni completamente nuove, le DLL sono sempre migliori di quelle di LIB.