Inicializar un archivo DLL
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)