Inizializzazione di una DLL
La DLL contiene in genere il codice di inizializzazione, come l'assegnazione di memoria, che occorre eseguire al caricamento della DLL.Con Visual C++, la posizione in cui aggiungere il codice per l'inizializzazione della DLL dipende dal tipo di DLL che si sta compilando.Se non occorre aggiungere codice di inizializzazione o terminazione, non è necessario eseguire particolari operazioni nella compilazione della DLL.Se è invece necessario inizializzare la DLL, consultare la tabella seguente in cui viene descritto dove aggiungere il codice.
Tipo DLL |
Dove aggiungere il codice di inizializzazione e terminazione |
---|---|
DLL regolare |
In InitInstance ed ExitInstance dell'oggetto CWinApp della DLL. |
DLL di estensione |
Nella funzione DllMain generata dalla Creazione guidata DLL MFC. |
DLL non MFC |
In una funzione denominata DllMain fornita dal creatore. |
In Win32 tutte le DLL possono contenere una funzione di punto di ingresso facoltativa, in genere denominata DllMain, chiamata sia per l'inizializzazione che per la terminazione.Questa funzione offre l'opportunità di assegnare o rilasciare risorse aggiuntive quando necessario.In Windows la funzione di punto di ingresso viene chiamata in quattro situazioni: connessione e disconnessione del processo, connessione e disconnessione del thread.
La libreria di runtime C offre una funzione di punto di ingresso denominata _DllMainCRTStartup e chiama DllMain.A seconda del tipo di DLL, è necessario avere una funzione denominata DllMain nel codice sorgente oppure utilizzare la funzione DllMain fornita nella libreria MFC.