Inicializar un archivo DLL
Actualización: noviembre 2007
Generalmente, el archivo DLL incluye código de inicialización (de asignación de memoria, por ejemplo) que deberá ejecutarse cuando se cargue el archivo DLL. Cuando se utiliza Visual C++, el punto en el que debe agregar código de inicialización para el archivo DLL dependerá del tipo de DLL que vaya a generar. Si no necesita agregar código de inicialización o de finalización, no tiene que hacer nada específico al generar el archivo DLL. En la tabla siguiente se indica dónde debe agregar código para inicializar el archivo DLL.
Tipo de archivo DLL |
Dónde debe agregarse el código de inicialización y de finalización |
---|---|
Archivo DLL estándar |
En las funciones InitInstance y ExitInstance del objeto CWinApp del archivo DLL. |
Archivo DLL de extensión |
En la función DllMain generada por el Asistente para archivos DLL de MFC. |
Archivo DLL que no está basado en MFC |
En una función denominada DllMain proporcionada por el usuario. |
En Win32, todos los archivos DLL pueden contener una función de punto de entrada opcional (normalmente denominada DllMain) que se invoca para la inicialización y la finalización. Esto le ofrece la oportunidad de asignar o liberar recursos adicionales cuando sea necesario. Windows llamará a la función de punto de entrada en cuatro situaciones: asociación de proceso, desasociación de proceso, asociación de subproceso y desasociación de subproceso.
La biblioteca en tiempo de ejecución de C proporciona una función de punto de entrada denominada _DllMainCRTStartup, que llama a DllMain. En función del tipo de archivo DLL, deberá incluir una función denominada DllMain en el código fuente o utilizar la función DllMain proporcionada por la biblioteca MFC.
¿Qué desea hacer?
¿Qué más desea saber?
Comportamiento de la biblioteca en tiempo de ejecución de C y _DllMainCRTStartup
Función de punto de entrada de biblioteca de vínculos dinámicos (SDK de Windows)