Select the product you need help with
¿Qué es un archivo DLL?Id. de artículo: 815065 - Ver los productos a los que se aplica este artículo En esta páginaResumenEste artículo describe lo que es una biblioteca de vínculos dinámicos (DLL) y los distintos problemas que pueden producirse al utilizar archivos DLL. A continuación, en este artículo se describe algunos temas avanzados que se deben considerar al desarrollar sus propios archivos DLL. En la descripción de lo que un archivo DLL es, en este artículo describe los métodos de vinculación dinámicos las dependencias DLL, puntos de entrada DLL, exportación de funciones DLL y herramientas para solucionar problemas de DLL. En este artículo finaliza con una comparación de alto nivel de archivos DLL a los ensamblados de Microsoft.NET Framework. INTRODUCCIÓNPara los sistemas operativos de Microsoft Windows que se enumeran
en la sección "Se refiere a:", gran parte de la funcionalidad del sistema operativo
Proporciona bibliotecas de vínculos dinámicos (DLL). Además, cuando se ejecuta un
programa en uno de estos sistemas operativos de Windows, gran parte de la funcionalidad de
el programa podrá ser servido por archivos DLL. Por ejemplo, algunos programas pueden contener
contiene muchos módulos diferentes y cada módulo del programa y
se distribuyen en archivos DLL. El uso de archivos DLL ayuda a promover la modularización de código, reutilización de código, uso eficaz de la memoria y espacio en disco reducido. Por lo tanto, el sistema operativo y los programas se cargan más rápido, se ejecutan más rápidamente y necesitan menos espacio espacio en disco en el equipo. Cuando un programa utiliza un archivo DLL, un problema que se denomina dependencia puede hacer que el programa no se ejecute. Cuando un programa utiliza un DLL, se crea una dependencia. Si otro programa sobrescribe y rompe esto dependencia, el programa original no puede funcionar correctamente. Con el Introducción de la de Microsoft.NET Framework, la mayoría de los problemas de dependencia tienen se ha eliminado mediante el uso de ensamblados. Más información¿Qué es un archivo DLL?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, puede ser un programa diseño modular en componentes separados. Por ejemplo, puede ser un programa de contabilidad vendido por módulo. Cada módulo se puede cargar en el programa principal en tiempo de ejecución si ese módulo está instalado. Dado que los módulos son independientes, el tiempo de carga el programa es más rápido, y sólo se carga un módulo una vez que la funcionalidad solicitado. Además, las actualizaciones son más fáciles de aplicar a cada módulo sin que afecte a otras partes del programa. Por ejemplo, puede tener un programa de nóminas y los tipos impositivos cambian cada año. Cuando estos cambios son aislada a un archivo DLL, puede aplicar una actualización sin necesidad de crear o instalar todo el programa otra vez. En la lista siguiente se describe algunas de las archivos que se implementan como archivos DLL en sistemas operativos Windows:
Ventajas DLLLa siguiente lista describe algunas de las ventajas que están siempre cuando un programa utiliza un archivo DLL:
Dependencias de DLLCuando un programa o un archivo DLL utiliza una función DLL en otro archivo DLL, un se crea una dependencia. Por lo tanto, el programa ya no es autónomo, y el programa puede experimentar problemas si se rompe la dependencia. Por ejemplo, el programa puede no funcionar si se produce una de las siguientes acciones:
La lista siguiente describe los cambios que se han introducido en Microsoft Windows 2000 y en sistemas operativos de Windows posteriores a ayudar a minimizar los problemas de dependencia:
Herramientas de solución de problemas de DLLVarias herramientas están disponibles para ayudarle a solucionar problemas DLL. Las herramientas siguientes son algunas de estas herramientas.Dependency WalkerEl análisis de forma recursiva Dependency Walker can de herramienta para todos los dependientes Archivos DLL utilizados por un programa. Al abrir un programa en Dependency Walker, Dependency Walker realiza las siguientes comprobaciones:
unidadStudio\Common\Tools visual \Program Files\Microsoft Solucionador de Universal de DLLLa herramienta Solver Universal problema de DLL (duplicados) se utiliza para auditar, comparar, documento y para mostrar información de archivo DLL. La siguiente lista describe las utilidades que constituyen la herramienta de duplicados:
247957
(http://support.microsoft.com/kb/247957/
)
Uso de DUPS.exe para resolver problemas de compatibilidad DLLDesarrollo de DLLEsta sección describen los problemas y los requisitos que se debe tener en cuenta al desarrollar sus propios archivos DLL.Tipos de archivos DLLCuando se carga un archivo DLL en una aplicación, dos métodos para permitir que la vinculación llamar a las funciones DLL exportadas. Los dos métodos de vinculación son el tiempo de carga vinculación dinámica y vinculación dinámica en tiempo de ejecución.Vinculación dinámica en tiempo de cargaEn la vinculación dinámica en tiempo de carga, una aplicación realiza llamadas explícitas para exporta funciones DLL al igual que las funciones locales. Para utilizar el tiempo de carga dinámica vinculación, proporcionar un encabezado (. h) archivo y una biblioteca de importación (.lib) archivo cuando se Compile y vincule la aplicación. Al hacerlo, el vinculador proporcionará la sistema con la información que es necesario para cargar el archivo DLL y resolver el ubicaciones de la función DLL exportados en tiempo de carga.Vinculación dinámica en tiempo de ejecuciónEn la vinculación dinámica en tiempo de ejecución, una aplicación llama a la función LoadLibrary o a la función LoadLibraryEx para cargar el archivo DLL en tiempo de ejecución. Después de la DLL función de DLL ha cargado correctamente, utilice la función GetProcAddress para obtener la dirección de la exportación, que que desea llamar. Cuando se utiliza la vinculación dinámica en tiempo de ejecución, no es necesario un Importar archivo de biblioteca.En la lista siguiente describe la aplicación criterios de cuándo se debe utilizar la vinculación dinámica en tiempo de carga y cuándo se debe utilizar el tiempo de ejecución vinculación dinámica:
El punto de entrada DLLCuando se crea un archivo DLL, opcionalmente, puede especificar un punto de entrada función. La función de punto de entrada se llama cuando procesos o subprocesos adjuntar a sí mismos a la DLL o desasociado a sí mismos desde el archivo DLL. Puede utilizar el función de punto de entrada para inicializar las estructuras de datos o destruir datos estructuras según sea necesario por el archivo DLL. Además, si la aplicación es multiproceso, puede utilizar almacenamiento local de subprocesos (TLS) para asignar la memoria que es privada para cada subproceso de la función de punto de entrada. El código siguiente es un ejemplo de la función de punto de entrada DLL.Sólo debe realizar la función de punto de entrada simple las tareas de inicialización y no debe llamar a cualquier otro de terminación o cargar el archivo DLL funciones. Por ejemplo, en la función de punto de entrada, debería no directamente o indirectamente, llame a la función LoadLibrary o la función LoadLibraryEx . Además, no debe llamar la función FreeLibrary cuando el proceso está finalizando. Nota En las aplicaciones multiproceso, asegúrese de que dicho acceso al archivo DLL global de datos está sincronizado (seguro para subprocesos) para evitar la corrupción de datos posibles. A hacer esto, utilice TLS para proporcionar datos únicos para cada subproceso. Exportar funciones DLLPara exportar funciones DLL, puede agregar una palabra clave de la función la DLL exporta funciones o crear un archivo de definición (.def) del módulo que se enumeran las funciones DLL exportadas.Para utilizar una palabra clave de la función, debe Declare cada función que se va a exportar con la siguiente palabra clave: __declspec (dllexport) Utilizar funciones DLL exportadas en la aplicación,
debe declarar cada función que se va a importar con la siguiente palabra clave:__declspec (dllimport) Normalmente, utilizaría un archivo de encabezado que tiene una instrucción de definir y una instrucción ifdef para separar la declaración de exportación y la importación
declaración.También puede utilizar un archivo de definición de módulo para declarar funciones DLL exportadas. Cuando se utiliza un archivo de definición de módulo, no tiene Para agregar la palabra clave function a las funciones DLL exportadas. En el módulo archivo de definición, se declaran la instrucción de biblioteca y la instrucción EXPORTS del archivo DLL. El código siguiente es un ejemplo de un archivo de definición. Ejemplo de archivo DLL y aplicaciónEn Microsoft Visual C++ 6.0, puede crear un archivo DLL mediante la selección ya sea el Biblioteca de vínculos dinámicos Win32 tipo de proyecto o la MFC AppWizard (dll) tipo de proyecto.El siguiente código es un ejemplo de un archivo DLL que se creó en Visual C++ mediante el Biblioteca de vínculos dinámicos Win32 tipo de proyecto. En la vinculación dinámica en tiempo de ejecución, utilice código similar al el siguiente código para llamar a la SampleDLL.dll exporta la función DLL.
El ensamblado de.NET FrameworkCon la introducción de Microsoft .NET y el de.NET Framework, la mayoría de los problemas que están asociados con los archivos DLL se ha eliminado por utilizar ensamblados. Un ensamblado es una unidad lógica de funcionalidad que se ejecuta bajo el control de common language runtime (CLR). NET. Un ensamblado existe físicamente como un archivo .dll o como un archivo .exe. Sin embargo, internamente un ensamblado es muy diferente de un archivo DLL de Win32 de Microsoft.Un ensamblado archivo contiene un manifiesto de ensamblado, metadatos de tipo, intermedio de Microsoft código de Microsoft (MSIL) y otros recursos. El manifiesto del ensamblado contiene el metadatos del ensamblado que proporciona toda la información que se requiere para una ensamblado que se va a autodescriptivo. La siguiente información se incluye en el manifiesto del ensamblado:
La siguiente lista describe algunas de las características de los ensamblados en comparación con las características de los archivos DLL de Win32:
ReferenciasPara obtener más información acerca de los archivos DLL y el de.NET Framework
ensamblados, visite los siguientes sitios Web de Microsoft: Conflictos de DLL http://msdn2.Microsoft.com/en-us/library/ms811694.aspx
(http://msdn2.microsoft.com/en-us/library/ms811694.aspx)
Implementar el componente de side-by-side sharing in applications http://msdn2.Microsoft.com/en-us/library/ms811700.aspx
(http://msdn2.microsoft.com/en-us/library/ms811700.aspx)
Cómo generar y servicio de aplicaciones aisladas y ensamblados en paralelo para Windows XP http://msdn2.Microsoft.com/en-us/library/ms997620.aspx
(http://msdn2.microsoft.com/en-us/library/ms997620.aspx)
Simplificación de la implementación y resolver conflictos de DLL con el.NET Framework http://msdn2.Microsoft.com/en-us/NETFramework/aa497268.aspx
(http://msdn2.microsoft.com/en-us/netframework/aa497268.aspx)
Guía del desarrollador de.NET Framework: ensamblados http://msdn2.Microsoft.com/en-us/library/hk5f40ct (inglés) .aspx
(http://msdn2.microsoft.com/en-us/library/hk5f40ct(vs.71).aspx)
Vinculación dinámica en tiempo de ejecución http://msdn2.Microsoft.com/en-us/library/ms685090.aspx
(http://msdn2.microsoft.com/en-us/library/ms685090.aspx)
Almacenamiento local de subprocesos http://msdn2.Microsoft.com/en-us/library/ms686749.aspx
(http://msdn2.microsoft.com/en-us/library/ms686749.aspx)
PropiedadesId. de artículo: 815065 - Última revisión: domingo, 10 de marzo de 2013 - Versión: 7.0 La información de este artículo se refiere a:
Traducción automática IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente. Haga clic aquí para ver el artículo original (en inglés): 815065
(http://support.microsoft.com/kb/815065/en-us/
)
| Seleccione idioma |




Volver al principio








