Partager via


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 ?

Voir aussi

Concepts

Initialisation d'une DLL