En informática, una biblioteca de enlace dinámico (DLL) es una biblioteca que contiene código y datos que pueden ser utilizados por más de un programa al mismo tiempo. Por ejemplo, una DLL puede contener una función exportada o una propiedad. Cuando se carga una DLL, el sistema operativo crea un espacio de direcciones separado para el código de la DLL. Esto significa que cada proceso que carga la DLL tiene su propia copia del código de la DLL en la memoria.
Las DLL se utilizan para promover la modularización del código y reducir el tamaño de los ejecutables. También permiten compartir recursos, como la memoria y el espacio en disco, entre múltiples aplicaciones. Las DLL también pueden utilizarse para implementar restricciones de seguridad. Por ejemplo, una DLL puede utilizarse para implementar una comprobación de seguridad que se llama antes de que se permita cargar una aplicación.
Las DLLs se almacenan normalmente en un subdirectorio del directorio de Windows, como C:WindowsSystem32. Cuando se carga una DLL, el sistema operativo busca la DLL en la siguiente secuencia:
El directorio desde el que se cargó la aplicación.
El directorio del sistema. La función GetSystemDirectory recupera la ruta de este directorio.
El directorio del sistema de 16 bits. No hay una función que recupere la ruta de este directorio, pero se busca en él. El nombre de este directorio es System.
El directorio de Windows. La función GetWindowsDirectory recupera la ruta de este directorio.
Los directorios listados en la variable de entorno PATH.
Cuando se carga una DLL, el sistema operativo también debe cargar cualquier DLL dependiente. Una DLL dependiente es una DLL que es requerida por otra DLL. Por ejemplo, una DLL que exporta funciones que son utilizadas por las aplicaciones también debe exportar una función que es utilizada por el sistema operativo para resolver las importaciones. Esta función se llama la función de punto de entrada de la DLL.
Cuando se carga una DLL,
¿Cómo funciona una biblioteca dinámica?
Cuando un programa se enlaza con una biblioteca dinámica, el enlazador sólo registra la ubicación de la biblioteca (normalmente una ruta absoluta) y los nombres de las funciones y variables que exporta (los llamados "símbolos"). No copia ningún código de la biblioteca en el archivo ejecutable; ese es el trabajo del enlazador dinámico.
Cuando el programa se ejecuta, el enlazador dinámico carga la biblioteca dinámica y resuelve los símbolos. Es decir, busca las funciones y variables en la biblioteca y reemplaza las entradas del marcador de posición en el archivo ejecutable con las direcciones reales de las funciones y variables.
El enlazador dinámico suele funcionar de forma transparente; el usuario no necesita saber nada sobre él. Sin embargo, es posible configurar el enlazador dinámico en algunos casos. Por ejemplo, la variable de entorno LD_LIBRARY_PATH puede utilizarse para indicar al enlazador dónde buscar las bibliotecas dinámicas.
¿Qué es una extensión de archivo .
DLL? Los archivos .DLL son bibliotecas de enlace dinámico que contienen código ejecutable que puede ser utilizado por otras aplicaciones. Estos archivos se utilizan normalmente para compartir código y recursos entre diferentes aplicaciones.
Los archivos .DLL pueden estar vinculados estática o dinámicamente a una aplicación. Los archivos .DLL vinculados estáticamente se vinculan a la aplicación en tiempo de compilación, mientras que los archivos .DLL vinculados dinámicamente se vinculan a la aplicación en tiempo de ejecución.
Los archivos .DLL pueden ser utilizados por múltiples aplicaciones simultáneamente, y pueden ser cargados y descargados según lo necesite el sistema operativo.
Los archivos .DLL suelen tener una correspondencia de uno a uno con una aplicación, lo que significa que cada archivo .DLL es utilizado por una sola aplicación. Sin embargo, es posible que un archivo .DLL sea utilizado por múltiples aplicaciones.
¿Qué es una DLL y qué tipos de DLL existen?
DLL significa "Dynamic Link Library". Una DLL es un archivo que contiene código y datos que pueden ser utilizados por más de un programa al mismo tiempo. Por ejemplo, las DLL se utilizan a menudo para proporcionar una funcionalidad que no está directamente relacionada con el propósito principal del programa.
Hay dos tipos de DLLs: estáticas y dinámicas.
Una DLL estática es una DLL que está vinculada a un archivo ejecutable en tiempo de compilación. Una DLL dinámica es una DLL que está vinculada a un archivo ejecutable en tiempo de ejecución.
Tanto las DLL estáticas como las dinámicas pueden ser utilizadas por más de un programa. Sin embargo, las DLLs estáticas son usadas típicamente por programas que son monolíticos, lo que significa que el código de todo el programa está contenido en un único archivo ejecutable. Las DLL dinámicas son usadas normalmente por programas que son modulares, lo que significa que el código del programa está dividido en múltiples archivos, cada uno de los cuales es una DLL. ¿Dónde se encuentra la biblioteca de enlace dinámico? La biblioteca de enlace dinámico se encuentra en el mismo directorio que el programa que la utiliza.