DLL
Aggiornamento: novembre 2007
Una libreria a collegamento dinamico (DLL, Dynamic Link Library) è un file eseguibile che funziona come una libreria di funzioni condivisa. Tramite il collegamento dinamico, un processo chiama una funzione che non fa parte del proprio codice eseguibile. Il codice eseguibile della funzione si trova in una DLL, che contiene una o più funzioni compilate, collegate e memorizzate separatamente dai processi che le utilizzano. Le DLL facilitano anche la condivisione di dati e risorse. Più applicazioni possono accedere contemporaneamente al contenuto di un'unica copia di una DLL in memoria.
Il collegamento dinamico si differenzia da quello statico poiché consente di includere in un modulo eseguibile, ovvero un file dll o exe, solo le informazioni necessarie in fase di esecuzione per individuare il codice eseguibile per una funzione di una DLL. Nel collegamento statico, il linker ottiene tutte le funzioni a cui fare riferimento dalla libreria a collegamento statico e le inserisce nell'eseguibile con il codice.
L'utilizzo del collegamento dinamico anziché di quello statico offre vari vantaggi. Le DLL consentono di risparmiare memoria, ridurre lo swapping, occupare meno spazio su disco, eseguire più facilmente gli aggiornamenti, facilitare il supporto postvendita, offrire un meccanismo per estendere le classi delle librerie MFC, realizzare programmi multilinguaggio e semplificare la creazione delle versioni internazionali.
Negli argomenti riportati di seguito vengono fornite informazioni dettagliate sulla programmazione delle DLL.
In questa sezione
Differenze tra applicazioni e DLL
Vengono descritte le differenze fondamentali fra le applicazioni e le DLL.Vantaggi dell'utilizzo delle DLL
Vengono illustrati i vantaggi del collegamento dinamico.Domande frequenti relative alle DLL
Vengono fornite risposte alle domande frequenti relative alle DLL.Collegamento di un eseguibile a una DLL
Viene descritto il collegamento esplicito e implicito a una DLL.Inizializzazione di una DLL
Viene illustrato il codice di inizializzazione della DLL, come l'assegnazione di memoria, da eseguire al caricamento della DLL.Funzionamento della libreria di runtime
Viene illustrata la sequenza di avvio della DLL eseguita dalla libreria runtime.LoadLibrary e AfxLoadLibrary
Viene illustrato l'utilizzo di LoadLibrary e AfxLoadLibrary per il collegamento esplicito a una DLL.GetProcAddress
Viene illustrato l'utilizzo di GetProcAddress per ottenere l'indirizzo di una funzione esportata nella DLL.FreeLibrary e AfxFreeLibrary
Viene illustrato l'utilizzo di FreeLibrary e AfxFreeLibrary quando il modulo di DLL non è più necessario.Percorso di ricerca utilizzato da Windows per l'individuazione di una DLL
Viene illustrato il percorso di ricerca utilizzato dal sistema operativo Windows per individuare una DLL nel sistema.Stato dei moduli di una DLL regolare collegata a MFC in modo dinamico
Vengono illustrati gli stati del modulo di una DLL regolare collegata a MFC in modo dinamico.DLL di estensione
Vengono illustrate le DLL che implementano generalmente classi riutilizzabili derivate dalle classi esistenti della libreria MFC.Creazione di una DLL di sole risorse
Viene illustrata una DLL di sole risorse, ovvero che contiene unicamente delle risorse, come icone, bitmap, stringhe e finestre di dialogo.Risorse localizzate in applicazioni MFC: DLL satellite
Viene descritto un supporto avanzato per le DLL satellite, una funzionalità che aiuta a creare applicazioni localizzate in più lingue.Importazione ed esportazione
Viene descritto come importare simboli pubblici in un'applicazione o come esportare funzioni da una DLL.Tecnologia Active e DLL
Consente di implementare completamente server oggetto in una DLL.Automazione in una DLL
Viene illustrata l'opzione di automazione nella Creazione guidata DLL MFC.Convenzioni di denominazione per le DLL MFC
Viene illustrato come le DLL e le librerie incluse in MFC seguono una convenzione di denominazione strutturata.Chiamata di funzioni DLL dalle applicazioni Visual Basic
Viene descritto come chiamare funzioni nelle DLL dalle applicazioni Visual Basic.
Sezioni correlate
Utilizzo di MFC come parte di una DLL
Vengono illustrate le DLL regolari, che consentono di utilizzare la libreria MFC come parte di una libreria a collegamento dinamico di Windows.Versione DLL di MFC
Viene illustrato come utilizzare le librerie a collegamento dinamico condivise MFCxx.dll e MFCxxD.dll, dove x rappresenta il numero di versione di MFC, con applicazioni MFC e DLL di estensione.Metodologie di programmazione comuni
Vengono forniti collegamenti ad argomenti in cui sono disponibili informazioni sulle librerie di Visual C++ e ad argomenti in cui vengono discusse le varie tecnologie e tecniche di programmazione.