Dynamic Link Library (DLL) se traduce del inglés como "biblioteca de vínculos dinámicos". Una DLL es un archivo ejecutable que realiza las funciones de una biblioteca compartida. A través de su vinculación dinámica, DLL proporciona una forma de llamar a una función que es parte del código ejecutable.
El código de la función ejecutable en sí está en una DLL, que contiene varias funciones compiladas, vinculadas y almacenadas en los procesos que se utilizan. DLL sirve para simplificar el proceso de compartir fuentes y datos. Permite que las aplicaciones instaladas en el sistema accedan a múltiples contenidos de una sola copia de la DLL cargada en la memoria al mismo tiempo.
Codificación modular: el antepasado de las DLL
El comienzo del trabajo sobre la creación de una DLL puede considerarse la aparición de un método de programación como la codificación modular. En un momento, la codificación modular facilitó enormemente el trabajo de los programadores, haciendo posible no escribir el mismo código para cada nuevo programa varias veces. Todos los programas simples contienen mucho código similar, que comenzaron a diseñar en forma de módulos, agregándolos a nuevas aplicaciones. Durante un tiempo, la codificación modular fue la solución más simple y efectiva y solo tenía un inconveniente. Los módulos idénticos agregados a los programas ocupaban espacio en disco, que era escaso en esos días.
El problema de desperdiciar espacio en disco en módulos idénticos era el único, mientras que solo había sistemas operativos de una sola tarea. Con la llegada de los sistemas operativos multitarea como Windows, surgió otro problema. Ahora los programas con módulos con el mismo código, cuando se lanzaban simultáneamente, comenzaban a cargarlo en la RAM, "consumiendo" todos los recursos. Vale la pena señalar que en ese momento, un módulo de memoria de 500 megabytes era el más grande que existía y era bastante caro. Pero incluso el tamaño máximo de RAM no salvó a los usuarios, los programas cargaron la RAM por completo, imposibilitando el funcionamiento normal de la computadora.
La aparición de DLL
Se encontró una solución decente a estos problemas, se veía así: los módulos con el mismo código dejaron de acoplarse con el programa principal, guardándolos en un archivo ejecutable separado, al que podía acceder cualquier aplicación según fuera necesario. Es esta solución la que forma la base de los archivos DLL que se vinculan dinámicamente a cualquier programa. Ahora es posible almacenar código ejecutable en estas bibliotecas en forma de funciones o procedimientos, gráficos e incluso videos, lo que permitió ahorrar espacio en disco y recursos RAM.
El único inconveniente de las bibliotecas de enlaces dinámicos es la pérdida de tiempo adicional al cargar el programa. Además de este pequeño inconveniente, DLL se compone únicamente de ventajas. Por lo tanto, estas bibliotecas se utilizan ampliamente y los programadores las utilizan en casi todas las aplicaciones.