Dll vs lib
Una biblioteca es una colección de recursos que se pueden utilizar para desarrollar aplicaciones. Una biblioteca generalmente se compone de subrutinas, funciones, clases, valores y tipos. Durante el proceso de enlace (generalmente realizado por un enlazador), las bibliotecas y los ejecutables hacen referencia entre sí. Los archivos de la biblioteca se dividen en bibliotecas estáticas y dinámicas, dependiendo del momento en que las subrutinas se cargan a la aplicación de destino. En consecuencia, los archivos LIB son bibliotecas estáticamente vinculadas y los archivos DLL son bibliotecas vinculadas dinámicamente.
Que es dll?
La biblioteca de enlaces dinámicos (más comúnmente conocido como DLL) es una implementación de la biblioteca compartida desarrollada por Microsoft. Usa el .dll, .OCX o .Extensiones DRV y se utilizan en Microsoft Windows y sistemas operativos OS/2 ... DLL es utilizado por los archivos DLL regulares. Y .La extensión OCX es utilizada por bibliotecas que contienen controles activos y .DRV Extension es utilizado por archivos de controlador del sistema heredado. El formato de archivo DLL es el mismo que los archivos de Windows exe (archivos ejecutables portátiles en Windows de 32 bits/64 bits y nuevo ejecutable en Windows de 16 bits). Por lo tanto, cualquier combinación de código, datos y recursos se puede contener en archivos DLL (al igual que en los archivos EXE). De hecho, los archivos de datos con el formato de archivo DLL se denominan DLL de recursos. Bibliotecas de iconos (con .Extensión ICL) y archivos de fuentes (con .Fon y .Extensiones FOT) son ejemplos de DLL de recursos.
Los componentes llamados secciones forman una DLL y cada sección tiene sus propios atributos como solo lectura/escritura y ejecutable/no ejecutable. Las secciones del código son ejecutables, mientras que las secciones de datos no son ejecutables. Las secciones del código son compartidas y las secciones de datos son privadas. Eso significa que todos los procesos utilizando la DLL utilizará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 el kernel32.DLL, que contiene las funciones base (funcionalidad relacionada con la memoria y la memoria) en Windows. Com (modelo de objeto componente) es la extensión de DLL a OOP (programación orientada a objetos). Las DLL convencionales son más fáciles de usar que los archivos COM.
Que 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). El código realmente se copia en la aplicación de destino. Un compilador, un enlazador o una carpeta hará esta resolución y producirá un archivo de objeto y un archivo ejecutable. Este proceso se llama proceso de construcción estática.
¿Cuál es la diferencia entre dll y lib??
Se pueden llamar a las bibliotecas de Lib durante el tiempo de compilación, pero las bibliotecas de 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 versiones. Esto sucede cuando se cambia el código del 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 los libs.