Differenza tra DLL e LIB

Anonim

DLL vs LIB

Una libreria è una raccolta di risorse che possono essere utilizzate per sviluppare applicazioni. Una libreria è di solito costituita da subroutine, funzioni, classi, valori e tipi. Durante il processo di collegamento (di solito fatto da un linker), le librerie e gli eseguibili si fanno riferimento reciprocamente. I file di libreria sono suddivisi in librerie statiche e dinamiche in base all'ora in cui le sottoprogrammi vengono caricate nell'applicazione di destinazione. Di conseguenza, i file LIB sono librerie collegate staticamente e i file DLL sono librerie collegate dinamicamente.

Che cosa è DLL?

La libreria di collegamento dinamico (più comunemente denominata DLL) è un'implementazione della libreria condivisa sviluppata da Microsoft. Usa il. dll,. ocx o. drv e vengono utilizzati nei sistemi operativi Microsoft Windows e OS / 2 … il dll viene utilizzato dai file DLL normali. E. L'estensione ocx viene utilizzata dalle librerie che contengono controlli ActiveX e. l'estensione drv viene utilizzata dai file del driver di sistema legacy. Il formato del file DLL è uguale ai file EXE di Windows (file eseguibili Portable 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 in file DLL (proprio come nei file EXE). In realtà, i file di dati con il formato di file DLL sono chiamati DLL di risorse. Le librerie di icone (con estensione icl) e file di carattere (con estensioni fon e fot fotografico) sono esempi di DLL di risorse.

I componenti chiamati sezioni costituiscono una DLL e ogni sezione ha i propri attributi come read-only / writable ed eseguibile / non eseguibile. Le sezioni di codice sono eseguibili, mentre le sezioni dei dati non sono eseguibili. Le sezioni del codice sono condivise e le sezioni dei 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 primaria per Windows è kernel32. dll, che contiene le funzioni di base (file e funzionalità correlate alla memoria) in Windows. COM (Component Object Model) è l'estensione della DLL a OOP (Object Oriented Programming). DLL convenzionali sono più facili da usare rispetto ai file COM.

Che cosa è 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 (a differenza di run-time). Il codice viene effettivamente copiato nell'applicazione di destinazione. Un compilatore, un linker o un raccoglitore farà questa risoluzione e produrrà un file di oggetto e un file eseguibile. Questo processo si chiama processo di compilazione statica.

Qual è la differenza tra DLL e LIB?

Le librerie LIB possono essere richiamate durante il tempo di compilazione, ma le librerie DLL possono essere chiamate solo durante il periodo di esecuzione.I file LIB sono notevolmente più grandi di quelli DLL. Un problema molto comune con i file DLL è il problema della versione. Ciò avviene 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 riutilizzo, quando si scrivono nuove versioni di sistemi o di applicazioni completamente nuove, le DLL sono sempre migliori di LIBs.