Diferencia Entre DLL Y LIB

Diferencia Entre DLL Y LIB
Diferencia Entre DLL Y LIB

Vídeo: Diferencia Entre DLL Y LIB

Vídeo: Diferencia Entre DLL Y LIB
Vídeo: C+ Dynamic Linking vs Static Linking 2024, Abril
Anonim

DLL frente a LIB

Una biblioteca es una colección de recursos que se pueden utilizar para desarrollar aplicaciones. Una biblioteca suele estar formada por subrutinas, funciones, clases, valores y tipos. Durante el proceso de vinculación (generalmente realizado por un vinculador), las bibliotecas y los ejecutables hacen referencia entre sí. Los archivos de biblioteca se dividen en bibliotecas estáticas y dinámicas según el momento en que se cargan las subrutinas en la aplicación de destino. En consecuencia, los archivos LIB son bibliotecas vinculadas estáticamente y los archivos DLL son bibliotecas vinculadas dinámicamente.

¿Qué es DLL?

Dynamic Link Library (más comúnmente conocida como DLL) es una implementación de biblioteca compartida desarrollada por Microsoft. Utiliza las extensiones.dll,.ocx o.drv y se utilizan en los sistemas operativos Microsoft Windows y OS / 2..dll es utilizado por los archivos DLL normales. Y la extensión.ocx es utilizada por bibliotecas que contienen controles ActiveX y la extensión.drv es utilizada por archivos de controladores del sistema heredados. El formato de archivo DLL es el mismo que el de los archivos EXE de Windows (archivos ejecutables portátiles en Windows de 32 o 64 bits y nuevo ejecutable en Windows de 16 bits). Por lo tanto, cualquier combinación de código, datos y recursos puede estar contenida en archivos DLL (al igual que en archivos EXE). De hecho, los archivos de datos con el formato de archivo DLL se denominan DLL de recursos. Las bibliotecas de iconos (con extensión.icl) y los archivos de fuentes (con extensiones.fon y.fot) son ejemplos de archivos DLL de recursos.

Los componentes llamados secciones componen una DLL y cada sección tiene sus propios atributos, como solo lectura / escritura y ejecutable / no ejecutable. Las secciones de código son ejecutables, mientras que las secciones de datos no lo son. Las secciones de código se comparten y las secciones de datos son privadas. Eso significa que todos los procesos que usan la DLL usarán la misma copia del código, mientras que cada proceso tendrá su propia copia de los datos. La biblioteca dinámica principal para Windows es kernel32.dll, que contiene las funciones básicas (funcionalidad relacionada con archivos y memoria) en Windows. COM (Component Object Model) es la extensión de DLL a OOP (Programación Orientada a Objetos). Los archivos DLL convencionales son más fáciles de usar que los archivos COM.

¿Qué es LIB?

Los archivos LIB son bibliotecas estáticas (también conocidas como bibliotecas vinculadas estáticamente). Los archivos LIB contienen una colección de subrutinas, funciones externas y variables. Los archivos LIB se resuelven en tiempo de compilación (a diferencia del tiempo de ejecución). En realidad, el código se copia en la aplicación de destino. Un compilador, enlazador o enlazador hará esta resolución y producirá un archivo objeto y un archivo ejecutable. Este proceso se denomina proceso de construcción estático.

¿Cuál es la diferencia entre DLL y LIB?

Las bibliotecas LIB se pueden llamar durante el tiempo de compilación, pero las bibliotecas DLL solo se pueden llamar durante el tiempo de ejecución. Los archivos LIB son significativamente más grandes que los archivos DLL. Un problema muy común con los archivos DLL es el problema de control de versiones. Esto sucede cuando se cambia el código de la DLL y la aplicación usa una versión incorrecta de una DLL. Este no es un problema asociado con los archivos LIB. En términos de reutilización, al escribir nuevas versiones de sistemas o aplicaciones completamente nuevas, las DLL siempre son mejores que las LIB.

Recomendado: