Programación Aplicada

Si buscas hosting web, dominios web, correos empresariales o crear páginas web gratis, ingresa a PaginaMX
Por otro lado, si buscas crear códigos qr online ingresa al Creador de Códigos QR más potente que existe


DLL

DLL es el acrónimo de Dynamic Linking Library (Bibliotecas de Enlace Dinámico), término con el que se refiere a los archivos con código ejecutable que se cargan bajo demanda del programa por parte del sistema operativo. Esta denominación se refiere a los sistemas operativos Windows siendo la extensión con la que se identifican los ficheros, aunque el concepto existe en prácticamente todos los sistemas operativos modernos. 


Ventajas [editar]Las DLLs pueden verse como la evolución de las bibliotecas estáticas y de forma análoga contienen funcionalidad o recursos que utilizan otras aplicaciones. Sin embargo, su uso proporciona algunas ventajas: 

Reducen el tamaño de los archivos ejecutables: Gran parte del código puede estar almacenado en bibliotecas y no en el propio ejecutable lo que redunda en una mejor modularización 
Pueden estar compartidas entre varias aplicaciones: Si el código es suficientemente genérico, puede resultar de utilidad para múltiples aplicaciones (por ejemplo, la MFC es una biblioteca dinámica con clases genéricas que recubren la API gráfica de Windows y que usan gran parte de las aplicaciones). 
Facilitan la gestión y aprovechamiento de la memoria del sistema: La carga dinámica permite al sistema operativo aplicar algoritmos que mejoren el rendimiento del sistema cuando se carguen estas bibliotecas. Además, al estar compartidas, basta con mantener una copia en memoria para todos los programas que la utilicen. 
Brindan mayor flexibilidad frente a cambios: Es posible mejorar el rendimiento o solucionar pequeños errores distribuyendo únicamente una nueva versión de la biblioteca dinámica. Nuevamente, está corrección o mejora será aprovechada por todas las aplicaciones que compartan la biblioteca. 

Problemas [editar]Sin embargo, no todo son ventajas. En los sistemas Windows, las DLLs son muy comunes y muchos programas usan las mismas DLLs. Pero debido a la evolución, cada una de las DLLs evoluciona incorporándose mejoras pero modificándolas de tal forma que dejan de ser compatibles. Esto puede producir dos efectos no deseados: 

que la instalación de un programa reemplace una DLL con una nueva versión incompatible 
que la desinstalación del programa borre una DLL compartida 
En ambos casos, el resultado es que dejan de funcionar los programas que utilizaban la vieja versión. Estos problemas se denominaron el infierno de las DLLs. 

Las versiones más modernas de Windows y los nuevos scripts de instalación MSI (sobre todo su característica de instalaciones residentes) abordan este problema. Sin embargo, el problema persiste cuando se utilizan otros instaladores (versiones antiguas) o se realizan modificaciones manuales. 

Las DLLs son una técnica de implementación de forma dinámica es decir que el ordenador sólo las carga cuando las llama el programa que las utiliza. 


Un archivo DLL es una biblioteca que contiene el código y datos que pueden ser utilizados por más de un programa al mismo tiempo. Por ejemplo, en el funcionamiento de Windows sistemas, la DLL Comdlg32 de cuadro de diálogo común realiza funciones relacionadas con el cuadro. Por lo tanto, cada programa puede utilizar la funcionalidad contenida en este archivo DLL para implementar un abierto cuadro de diálogo. Esto ayuda a promover la reutilización de código y el uso eficaz de la memoria.

Mediante el uso de un archivo DLL, un programa puede ser modular en componentes separados. 

Además, las actualizaciones son más fáciles de aplicar a cada módulo sin afectar a otras partes del programa. 

La lista siguiente describe algunos de los archivos que se implementan como archivos DLL en los sistemas operativos Windows:
  • Archivos de controles ActiveX (.ocx)
    Un ejemplo de un control ActiveX es un control de calendario que le permite seleccionar una fecha en un calendario.
  • Archivos (.cpl) del Panel de control
    Un ejemplo de un archivo .cpl es un elemento que se encuentra en el Panel de Control.
  • Archivos (.drv) del controlador de dispositivo
    Un ejemplo de un controlador de dispositivo es un controlador de impresora que controla la impresión en una impresora.
La lista siguiente describen algunas de las ventajas que se proporcionan cuando un programa utiliza un archivo DLL:
  • Utiliza menos recursos
    Cuando varios programas utilizan la misma biblioteca de funciones, un archivo DLL puede reducir la duplicación de código que se carga en el disco y en la memoria física.
  • Promueve la arquitectura modular
    Un archivo DLL ayuda a promover el desarrollo de programas modulares.
  • Instalación e implementación de las aceleraciones
    Cuando una función dentro de un archivo DLL necesita una actualización o una revisión, la distribución y la instalación de la DLL no requiere el programa volver a vincular con el archivo DLL.

Ventajas DLL

Cuando un programa o un archivo DLL utiliza una función DLL en otro archivo DLL, se crea una dependencia.
  • Una DLL dependiente se actualiza a una nueva versión.
  • Se fija una DLL dependiente.
  • Una DLL dependiente se sobrescribe con una versión anterior.
  • Una DLL dependiente se quita del equipo.
Estas acciones se conocen generalmente como conflictos de DLL. 

La lista siguiente describe los cambios que se han introducido en Microsoft Windows 2000 y en sistemas operativos de Windows posteriores para ayudar a minimizar los problemas de dependencia:
  • Protección de archivos de Windows
    En la protección de archivos de Windows, el sistema operativo impide que las DLL se actualiza o elimina un agente no autorizado del sistema.
  • Archivos DLL privados
    Dejar archivos DLL privados aislar un programa de los cambios que se realizan en los archivos DLL de Private archivos DLL compartidos utilizan información específica de la versión o un archivo .local vacía para exigir la versión de la DLL que es utilizada por el programa.

Dependencias de DLL

Varias herramientas están disponibles para ayudarle a solucionar problemas DLL.

Herramientas para solucionar problemas de DLL

La herramienta Dependency Walker puede recursivamente para todos los archivos DLL dependientes que son utilizados por un programa.
  • Dependency Walker busca archivos DLL que faltan.
  • Dependency Walker comprueba si los archivos de programa o archivos DLL que no son válidas.
  • Dependency Walker comprueba que las funciones de importación y exportación coincidencia de funciones.
  • Dependency Walker comprueba si hay errores de dependencia circular.
  • Dependency Walker comprueba los módulos que no son válidos porque los módulos son para un sistema operativo diferente.
Mediante el uso de Dependency Walker, puede documentar todos los archivos DLL que utiliza el programa. Esto puede ayudar a evitar y corregir problemas DLL que pueden surgir en el futuro. Cuando se instala Microsoft Visual Studio 6.0, Dependency Walker se encuentra en el directorio siguiente:
unidadProgram FilesMicrosoft Visual StudioCommonTools

Dependency Walker

Se utiliza la herramienta Solver de problema Universal (duplicados) de DLL para auditar, comparar, documento y mostrar la información del archivo DLL. La lista siguiente describe las utilidades de la herramienta de duplicados:
  • Dlister.exe
    Esta utilidad enumera todos los archivos DLL en el equipo y registra la información en un archivo de texto o a un archivo de base de datos.
  • Dcomp.exe
    Esta utilidad compara los archivos DLL que se enumeran en dos archivos de texto y produce un tercer archivo de texto que contiene las diferencias.
  • Dtxt2DB.exe
    Esta utilidad carga los archivos de texto que se crean mediante la utilidad Dlister.exe y la utilidad de Dcomp.exe en la base de datos de dllHell.
  • DlgDtxt2DB.exe
    Esta utilidad ofrece una versión de interfaz gráfica de usuario de la utilidad Dtxt2DB.exe.

 

© 2025 Programación Aplicada