Una DLL es una biblioteca de enlaces dinámicos. Es una colección de código y / o datos, que pueden ser utilizados por varias aplicaciones (u otras bibliotecas / módulos).
Por ejemplo, los métodos comunes para procesar archivos, trabajar con componentes de GUI, etc. están disponibles en bibliotecas, por lo que varias aplicaciones pueden usar la misma funcionalidad. Esto no solo reduce la necesidad de crear el mismo material varias veces, sino que también asegura que, por ejemplo, los diálogos comunes sean los mismos entre aplicaciones.
Las bibliotecas pueden cargarse en tiempo de ejecución y, por lo tanto, compartirse entre diferentes aplicaciones simultáneas. Esto se llama enlace dinámico.
En algunos casos, la biblioteca se puede incluir dentro de la propia aplicación. Esto se conoce como enlace estático. La vinculación estática facilita la implementación a costa de la flexibilidad, ya que cada aplicación cargará la misma copia de la DLL.
Sin embargo, la vinculación estática no siempre es una opción. Por ejemplo, no puede vincular estáticamente una aplicación .NET. El usuario debe tener las bibliotecas .NET para ejecutar una aplicación .NET y las bibliotecas (o ensamblados, como se denominan en .NET) se cargan en tiempo de ejecución.
Los archivos DLL se crean con las mismas herramientas que se utilizan para crear aplicaciones. Los detalles específicos dependen mucho de las herramientas utilizadas.