LIB vs DLL
Al desarrollar software, a menudo se nos pregunta si queremos usar LIB o DLL para contener funciones para la aplicación. LIB es una biblioteca estática donde las funciones y los procedimientos se pueden colocar y llamar mientras se compila la aplicación. Una DLL o Dynamic Link Library realiza la misma función pero es dinámica en el sentido de que la aplicación puede llamar a estas bibliotecas durante el tiempo de ejecución y no durante la compilación. Esto presenta algunas ventajas significativas en comparación con el uso de LIB.
Para empezar, tendría un solo archivo que es significativamente más grande, ya que contiene todo el código, mientras que tendría varios archivos más pequeños al usar DLL. La compilación de sus funciones y procedimientos también le permitiría una mayor reutilización, ya que una vez que esté satisfecho con las funciones de la DLL, puede mantenerla tal como está con cada versión de la aplicación y no tener que meterse con ella. También puede usar la misma DLL si desea crear otra aplicación que use las mismas funciones y procedimientos. Puede vincular directamente a la DLL en lugar de copiar el código de la fuente como lo haría con LIB.
Un problema con DLL es cuando cambia el contenido de la DLL. Esto puede llevar a problemas de versionamiento cuando una aplicación usa la versión incorrecta de la DLL causando problemas. Debe mantener un registro de sus DLL para evitar estos problemas. No tendría este problema con LIB ya que solo obtendría un archivo grande.
Al desarrollar el software y elegir DLL, aún tendría un archivo LIB en su proyecto. Pero a diferencia de cuando se usa LIB, este archivo no contiene el código de las funciones y los procedimientos, sino que solo indica que el programa necesita llamar a los procedimientos desde los archivos DLL..
Resumen:
1. Una DLL es una biblioteca que contiene funciones a las que las aplicaciones pueden llamar en tiempo de ejecución, mientras que LIB es una biblioteca estática cuyo código debe llamarse durante la compilación
2. El uso de LIB daría lugar a un solo archivo que es considerablemente más grande mientras terminas con varios archivos más pequeños con DLL
3. Los archivos DLL son más reutilizables que los LIBs al escribir nuevas versiones o aplicaciones totalmente nuevas
4. Los archivos DLL pueden ser utilizados por otras aplicaciones mientras que los archivos LIB no pueden
5. Las DLL son propensas a problemas de versionamiento mientras que LIB no lo es
6. Todavía tendría un archivo LIB al desarrollar software con DLL pero solo contiene apéndices