Condividi tramite


AfxInitExtensionModule

Chiamare la funzione DllMain di una DLL di estensione per inizializzare la DLL.

BOOL AFXAPI AfxInitExtensionModule( 
   AFX_EXTENSION_MODULE& state, 
   HMODULE hModule  
);

Parametri

  • state
    Un riferimento alla struttura Struttura AFX_EXTENSION_MODULE che conterrà lo stato del modulo di estensione DLL dopo l'inizializzazione. Lo stato include una copia degli oggetti della classe di runtime che sono stati inizializzati dalla DLL di estensione come parte della costruzione di un oggetto static normale eseguita prima che DllMain sia inserito.

  • hModule
    Gli handle del modulo DLL di estensione.

Valore restituito

TRUE se la DLL di estensione viene inizializzata correttamente; in caso contrario, FALSE.

Note

Di seguito è riportato un esempio.

static AFX_EXTENSION_MODULE NVC_MFC_DLLDLL = { NULL, NULL };
extern "C" int APIENTRY
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
    // Remove this if you use lpReserved
    UNREFERENCED_PARAMETER(lpReserved);

    if (dwReason == DLL_PROCESS_ATTACH)
    {
        TRACE0("NVC_MFC_DLL.DLL Initializing!\n");
        
        // Extension DLL one-time initialization 
        if (!AfxInitExtensionModule(NVC_MFC_DLLDLL, hInstance))
            return 0;

AfxInitExtensionModule genera una copia della DLL HMODULE e acquisisce le classi di runtime DLL (CRuntimeClass) così come le object factory (oggetti COleObjectFactory) da utilizzare più avanti quando viene creato l'oggetto CDynLinkLibrary.

Le DLL di estensione MFC cercano di eseguire due operazioni nella funzione DllMain :

  • Chiamare AfxInitExtensionModule e controllare il valore restituito.

  • Creare un oggetto CDynLinkLibrary se la DLL esporterà gli oggetti Struttura CRuntimeClass o dispone di proprie risorse personalizzate.

Si può chiamare AfxTermExtensionModule per pulire la DLL di estensione quando ciascun processo si disconnette dalla DLL di estensione, vale a dire quando il processo si chiude o quando la DLL viene scaricata in seguito a una chiamata a AfxFreeLibrary.

Requisiti

Intestazione: afxdll_.h

Vedere anche

Riferimenti

AfxTermExtensionModule

Concetti

Macro e funzioni globali MFC