Esta puede ser una pregunta muy novato, pero en el mundo actual del desarrollo de aplicaciones web, muchos programadores no necesitan lidiar mucho con dll y, por lo tanto, no se molestan en aprender sobre su propósito.
Entonces, ¿qué es un dll?
- ¿Para qué se usa esto?
- ¿Como funciona?
- ¿Cómo se crea uno?
- ¿En qué situaciones es apropiado crear uno?
Me han dicho que los dll se utilizan para almacenar bibliotecas de funciones, pero más allá de eso, no sé mucho. Espero que alguien aquí pueda aclararme para que finalmente pueda dejar de preguntarme qué están haciendo todos esos archivos .dll en mi directorio de Windows.
Respuestas:
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.
fuente
DLL = Biblioteca de vínculos dinámicos
El nombre es bastante descriptivo de lo que logran.
Biblioteca
Le permite aislar el código para un dominio de problema específico en una sola ubicación. Luego, comparta esto entre varias aplicaciones. La biblioteca se puede cambiar por otra en cualquier momento para corregir errores o agregar funcionalidad.
Enlace
Puede "Vincular" la biblioteca a una aplicación para que la lógica de la biblioteca no se compile directamente en la aplicación.
Dinámica
La biblioteca se puede cargar a pedido. En lugar de cargar un solo EXE gigantesco en la memoria, el sistema operativo puede cargar solo las partes necesarias. Además, si una DLL se comparte entre aplicaciones, el sistema operativo puede optimizar la forma en que se carga la biblioteca y compartirla entre aplicaciones.
fuente
Los archivos DLL (biblioteca de vínculos dinámicos) se pueden describir como pequeños "subprogramas" que están destinados a ayudar a que un programa más grande funcione bien. Proporcionan un medio para vincular varios recursos de hardware y software (en varios puntos de sus sesiones de tiempo de ejecución) al programa ejecutable principal en el que se basan, según surja la necesidad. Esto elimina la necesidad de cargar todo lo relacionado con el programa ejecutable principal en la RAM de la computadora (memoria de acceso aleatorio) cuando el programa se ejecuta por primera vez.
Los recursos de software que llevan las DLL incluyen código para las diversas funciones del programa que no son realmente necesarias para mantener el programa en ejecución: es decir, funciones que solo necesitan ser invocadas en ciertos momentos durante una sesión de computación determinada y que en realidad ni siquiera necesitan ser llamado en absoluto. Cargar esas funciones (y puede haber un número considerable de ellas para un programa determinado) en la RAM de la computadora cuando el programa se ejecuta por primera vez y luego mantenerlas allí durante toda la sesión sería una pérdida de espacio de RAM, que se considera que está en un premio.
Un gran avance:
Consideraciones:
fuente
Biblioteca enlazada dinámicamente.
Para darle un ejemplo, si tiene la DLL de otra persona cargada en su aplicación, puede usar fragmentos de programación de ella.
Puede cargar una DLL que genera números aleatorios que siempre comienzan con "5" o algo así.
En su programa puede llamar CrazyDLL.GenerateRandomNumbersSorta () y devolverá el número.
Para un ejemplo del mundo real, tengo una DLL que combina 4 cuadros de texto (los usaría para escribir direcciones IP) y automáticamente solo acepta números menores a 256, y maneja presionar la tecla de retroceso para saltar a un cuadro de texto anterior.
He creado una DLL con ese código, y ahora todo lo que tengo que hacer es arrastrar y soltar más colecciones de cuadros de texto de direcciones IP sin tener que duplicar todo ese código una y otra vez.
La misma DLL también tiene la función de convertir direcciones IP en cadenas hexadecimales y otro código útil.
fuente
Desde MSDN Library :
Una biblioteca de vínculos dinámicos (DLL) es un módulo que contiene funciones y datos que pueden ser utilizados por otro módulo (aplicación o DLL).
fuente
DLL = Biblioteca de vínculos de
cargadinámica . Como le han dicho, es básicamente una colección de funciones, clases C ++ y / o variables globales. Puede cargar la DLL estáticamente (es decir, el sistema operativo la carga automáticamente cuando se inicia el programa) o dinámicamente (su programa la carga explícitamente), momento en el que las funciones y el material dentro de la DLL están disponibles para su programa.Crear uno es similar a crear un EXE, excepto que no es necesario que haya una
main()
función. Hay directivas del vinculador para indicarle al vinculador que cree una DLL en lugar de un EXE.La razón principal por la que querría hacer esto es encapsular algo de código en un lugar y usarlo desde múltiples exe, en lugar de vincular el código en cada uno.
Una razón un tanto histórica es que su exe puede ser más pequeño ya que parte del código se encuentra físicamente en un archivo diferente. Esto significa que la cantidad de espacio ocupado en la memoria por su exe puede ser menor. En los sistemas modernos, esto es menos problemático de lo que solía ser, aunque aún podría ser un problema en Windows Mobile.
fuente