Initialisation de DLL normales
Dans la mesure où elles disposent d'un objet CWinApp, les DLL normales doivent réaliser leurs tâches d'initialisation et d'arrêt au même endroit qu'une application MFC : dans les fonctions membres InitInstance et ExitInstance de la classe dérivée de CWinApp de la DLL. Comme la bibliothèque MFC fournit une fonction DllMain qui est appelée par _DllMainCRTStartup pour PROCESS_ATTACH et PROCESS_DETACH, vous ne devez pas écrire votre propre fonction DllMain. La fonction DllMain fournit par la bibliothèque MFC appelle InitInstance lors du chargement de la DLL et ExitInstance avant son déchargement.
Une DLL normale peut assurer le suivi de plusieurs threads en appelant TlsAlloc et TlsGetValue dans sa fonction InitInstance. Ces fonctions permettent à la DLL de suivre les données spécifiques des threads.
Dans la DLL normale liée de manière dynamique aux MFC, si vous assurez une prise en charge de ressources OLE MFC, base de données MFC (ou DAO) ou sockets MFC, les DLL d'extension de débogage MFC MFCOxxD.dll, MFCDxxD.dll et MFCNxxD.dll (où xx correspond au numéro de version) sont, respectivement, liées de façon automatique. Vous devez appeler l'une des fonctions d'initialisation prédéfinies suivantes pour chacune des DLL que vous utilisez dans CWinApp::InitInstance de votre DLL normale.
Type de prise en charge MFC |
Fonction d'initialisation à appeler |
---|---|
OLE MFC (MFCOxxD.dll) |
AfxOleInitModule |
Base de données MFC (MFCDxxD.dll) |
AfxDbInitModule |
Sockets MFC (MFCDxxD.dll) |
AfxNetInitModule |
Que voulez-vous faire ?
Sur quels éléments souhaitez-vous obtenir des informations supplémentaires ?
Comportement de la bibliothèque Runtime C et DllMainCRTStartup
Utilisation de DLL d'extension de type base de données, OLE et sockets dans des DLL normales
Processus et threads (Kit de développement logiciel Windows)
Wrappers de stockage local des threads (note technique MFC 58)