Inizializzazione di DLL regolari
Poiché le DLL regolari dispongono di un oggetto CWinApp, devono eseguire le attività di inizializzazione e terminazione nella stessa posizione di un'applicazione MFC, ovvero nelle funzioni membro InitInstance ed ExitInstance della classe derivata da CWinApp della DLL. Poiché MFC fornisce una funzione DllMain chiamata da _DllMainCRTStartup per PROCESS_ATTACH e PROCESS_DETACH, non scrivere una propria funzione DllMain. La funzione DllMain fornita da MFC chiama InitInstance quando la DLL viene caricata ed ExitInstance prima che la DLL venga scaricata.
Una DLL regolare può tenere traccia di più thread chiamando TlsAlloc e TlsGetValue nella propria funzione InitInstance. Queste funzioni consentono alla DLL di tenere traccia dei dati specifici dei thread.
Se nella DLL regolare collegata a MFC in modo dinamico si utilizza un qualsiasi supporto MFC per OLE, database (o DAO) o Sockets, vengono collegate automaticamente le DLL di estensione di debug MFC MFCOxxD.dll, MFCDxxD.dll e MFCNxxD.dll, rispettivamente, dove xx è il numero di versione. È necessario chiamare una delle seguenti funzioni di inizializzazione predefinite per ciascuna di queste DLL utilizzate in CWinApp::InitInstance della DLL regolare.
Tipo di supporto MFC |
Funzione di inizializzazione da chiamare |
---|---|
OLE MFC (MFCOxxD.dll) |
AfxOleInitModule |
Database MFC (MFCDxxD.dll) |
AfxDbInitModule |
Sockets MFC (MFCNxxD.dll) |
AfxNetInitModule |
Scegliere l'argomento con cui si desidera procedere
Scegliere l'argomento su cui visualizzare maggiori informazioni
Utilizzo di DLL di estensione per database, OLE e Sockets nelle DLL regolari
Wrapper di memoria locale di thread (Nota tecnica 58 su MFC)