Inicializar archivos DLL estándar
Como los archivos DLL estándar incluyen un objeto CWinApp, deben realizar sus tareas de inicialización y finalización en la misma ubicación que una aplicación MFC: en las funciones miembro InitInstance y ExitInstance de la clase derivada de CWinApp del archivo DLL. Como MFC proporciona una función DllMain invocada por _DllMainCRTStartup para PROCESS_ATTACH y PROCESS_DETACH, no debe escribir su propia función DllMain. La función DllMain proporcionada por MFC llamará a InitInstance cuando se cargue el archivo DLL y a ExitInstance antes de descargar el archivo DLL.
Un archivo DLL estándar puede hacer un seguimiento de varios subprocesos llamando a TlsAlloc y TlsGetValue en la función InitInstance. Estas funciones permiten al archivo DLL hacer un seguimiento de datos específicos del subproceso.
Si utiliza la compatibilidad con MFC OLE, MFC Database (o DAO) o MFC Sockets en el archivo DLL estándar que se vincula dinámicamente a MFC, se vincularán automáticamente los archivos DLL de extensión para depuración de MFC MFCOxxD.dll, MFCDxxD.dll y MFCNxxD.dll (donde xx es el número de versión), respectivamente. Debe llamar a una de las siguientes funciones de inicialización predefinidas para cada uno de estos archivos DLL que se utilizan en la función CWinApp::InitInstance del archivo DLL estándar.
Tipo de compatibilidad con MFC |
Función de inicialización que se debe llamar |
---|---|
MFC OLE (MFCOxxD.dll) |
AfxOleInitModule |
MFC Database (MFCDxxD.dll) |
AfxDbInitModule |
MFC Sockets (MFCNxxD.dll) |
AfxNetInitModule |
¿Qué desea hacer?
¿Qué más desea saber?
Comportamiento de la biblioteca en tiempo de ejecución de C y _DllMainCRTStartup
Utilizar archivos DLL de extensión de base de datos, OLE y Sockets en archivos DLL estándar
Contenedores de almacenamiento local de subprocesos (Nota técnica 58 de MFC)