Se recomienda usar Visual Studio 2017

Archivos DLL en Visual C++

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Una biblioteca de vínculos dinámicos (DLL) es un archivo ejecutable que actúa como una biblioteca compartida de funciones y recursos. La vinculación dinámica permite a un archivo ejecutable llamar a funciones o usar recursos almacenados en un archivo independiente. Estas funciones y recursos se pueden compilar e implementar de forma independiente con respecto a los archivos ejecutables que los usan. El sistema operativo puede cargar el archivo DLL en el espacio de memoria del archivo ejecutable cuando este se cargue o a petición en tiempo de ejecución. Los archivos DLL también hacen que sea más fácil compartir funciones y recursos en archivos ejecutables. Distintas aplicaciones pueden acceder al mismo tiempo al contenido de una única copia de un archivo DLL en la memoria.

La vinculación estática copia todo el código de objeto de un archivo .lib en un archivo ejecutable. La vinculación dinámica solo incluye la información necesaria en tiempo de ejecución para encontrar y cargar el archivo DLL que contiene una función o un elemento de datos. Cuando crea un archivo DLL, también crea un archivo .lib que contiene esta información. Cuando compila un archivo ejecutable que llama al archivo DLL, el vinculador usa los símbolos exportados en el archivo .lib para almacenar esta información para el cargador. Cuando el cargador carga un archivo DLL, el archivo DLL se asigna en el espacio de memoria de su archivo ejecutable. Se llama a una función especial en el archivo DLL, DllMain, para que realice cualquier inicialización que requiera el archivo DLL.

El uso de la vinculación dinámica, en lugar de la vinculación estática, ofrece varias ventajas. Al usar archivos DLL, puede ahorrar espacio de memoria y reducir el intercambio. Si varias aplicaciones pueden usar una única copia de un archivo DLL, puede ahorrar espacio en disco y ancho de banda de descarga. Los archivos DLL se pueden implementar y actualizar por separado, lo que le permite proporcionar actualizaciones de software y soporte técnico post-venta sin tener que volver a compilar y enviar todo el código. Los archivos DLL son una manera cómoda de proporcionar recursos específicos de una configuración regional, lo que puede proporcionar compatibilidad con programas multilenguaje y facilitar la creación de versiones internacionales de sus aplicaciones.

En los siguientes temas se proporciona información detallada sobre cómo programar archivos DLL.

Tutorial: Crear y utilizar una biblioteca de vínculos dinámicos (C++)
Describe cómo crear y usar una DLL con Visual Studio.

Diferencias entre aplicaciones y archivos DLL
Describe las principales diferencias entre las aplicaciones y los archivos DLL.

Ventajas de utilizar archivos DLL
Describe las ventajas del vínculo dinámico.

Tipos de archivos DLL
Proporciona información sobre las distintas clases de archivos DLL que se pueden compilar.

Preguntas más frecuentes sobre archivos DLL
Proporciona respuestas a las preguntas más frecuentes sobre los archivos DLL.

Vincular un ejecutable a un archivo DLL
Describe el vínculo a un archivo DLL explícito e implícito.

Inicializar un archivo DLL
Describe el código de inicialización que incluye el archivo DLL (de asignación de memoria, por ejemplo) que deberá ejecutarse cuando se cargue el archivo DLL.

Comportamiento de la biblioteca en tiempo de ejecución
Describe cómo la biblioteca en tiempo de ejecución realiza la secuencia de inicio del archivo DLL.

LoadLibrary y AfxLoadLibrary
Describe el uso de LoadLibrary y AfxLoadLibrary para vincularse explícitamente a un archivo DLL en tiempo de ejecución.

GetProcAddress
Explica la utilización de GetProcAddress para obtener la dirección de una función exportada en el archivo DLL.

FreeLibrary y AfxFreeLibrary
Describe la utilización de FreeLibrary y AfxFreeLibrary cuando el módulo del archivo DLL ya no se necesita.

Ruta de búsqueda de Windows para encontrar un archivo DLL
Describe la ruta de acceso de búsqueda que usa el sistema operativo Windows para encontrar un archivo DLL en el sistema.

Estados de módulos de un archivo DLL estándar vinculado dinámicamente a MFC
Describe los estados de módulos de un archivo DLL vinculado dinámicamente a MFC.

Archivos DLL de extensión
Muestra un archivo DLL que implementa clases reutilizables derivadas de las clases existentes de la biblioteca MFC (Microsoft Foundation Classes).

Crear un archivo DLL de recursos
Describe un archivo DLL sólo de recursos, que únicamente contiene recursos, como iconos, mapas de bits, cadenas y cuadros de diálogo.

Recursos localizados en aplicaciones MFC: archivos DLL satélite
Proporciona compatibilidad mejorada con archivos DLL satélite, una característica que le ayuda a crear aplicaciones en múltiples idiomas.

Importar y exportar
Describe símbolos públicos de importación a una aplicación o funciones de exportación de un archivo DLL.

Tecnología activa y archivos DLL
Permite a los servidores de objetos implementarse dentro de un archivo DLL.

Automatización en un archivo DLL
Describe qué proporciona la opción Automatización en el Asistente para archivos DLL de MFC.

Convenciones de nomenclatura para archivos DLL de MFC
Explica cómo los archivos DLL y las bibliotecas incluidos en MFC utilizan una convención de nomenclatura estructurada.

Llamar a funciones de un archivo DLL desde aplicaciones programadas en Visual Basic
Describe cómo llamar a funciones DLL desde aplicaciones de Visual Basic.

Utilizar MFC como parte de un archivo DLL
Describe los archivos DLL normales, que le permiten usar la biblioteca MFC como parte de una biblioteca de vínculos dinámicos de Windows.

Versión de DLL de MFC
Describe la forma de utilizar las bibliotecas de vínculos dinámicos compartidas MFCxx.dll y MFCxxD.dll (donde x es el número de versión de MFC) con aplicaciones MFC y archivos DLL de extensión.

(NOTINBUILD)Visual C++ Programming Methodologies
Proporciona vínculos a temas que proporcionan información conceptual sobre las bibliotecas de Visual C++ y temas que tratan diversas tecnologías y técnicas de codificación.

Mostrar: