Una libreria di collegamento dinamico o DLL , consente a un'applicazione di caricare solo il codice eseguibile minimo necessario in memoria in fase di esecuzione . Ogni volta che il programma chiama una funzione in una DLL , il sistema operativo carica la DLL in memoria secondo le specifiche del programmatore . Fino a quando il programma in esecuzione non fa riferimento a una funzione di DLL , la DLL non deve occupare spazio . Ciò consente di risparmiare risorse e aumenta le prestazioni di runtime. Se la libreria fosse statico , tutto il codice della libreria saranno allegati al codice eseguibile del programma principale , e il programma di gigante avrebbe dovuto rimanere nella memoria per tutta la fase di esecuzione . La versione Unix o Linux di una DLL di Windows è una libreria oggetto condiviso che è costruito con l'estensione SO . Windows, Unix e Linux hanno convenzioni specifiche per accedere alle funzioni di DLL o librerie condivise . Istruzioni
Esportazione Oggetti Windows DLL utilizzando preprocessore chiave
1
Nel file di intestazione DLL , mettere il " __declspec ( dllexport ) " parola chiave prima che il prototipo di una funzione , di classe , membro della classe o variabile di dati nella DLL . Questa parola chiave si aggiunge la funzione di prototipo alla tabella di esportazione della DLL.
2
Utilizzare valori ordinali da 1 a N al posto dei nomi dei membri di funzione o di classe per risparmiare spazio occupato dalla tabella di esportazione della DLL , dove N è il numero di oggetti o funzioni nella DLL .
3
Aggiungi la " __declspec (dllimport ) " parola chiave prima delle corrispondenti prototipi di funzione del programma chiamante o DLL . La chiamata importazioni programma le funzioni che le esportazioni DLL.
Esportare le funzioni DLL di Windows tramite un modulo Definition File
4
Creare un file di testo con l' estensione DEF e aggiungerlo . al progetto per la DLL in Visual Studio
5
aggiungere l'istruzione "LIBRERIA " con il nome della DLL dopo che è il seguente:
BIBLIOTECA ReportWriter
6
Opzionalmente aggiungere una breve descrizione di una riga per la DLL come segue :
dESCRIZIONE si tratta di una DLL per la funzionalità di generazione di report in MyProduct
Questo è consigliato
. . Pagina 7
Aggiungi una voce per ogni funzione o membro della classe che la DLL vuole esportare , con un numero cardinale opzionale . Il numero cardinale rappresenta la funzione e assume valori da 1 a N , dove N è il numero di funzioni esportate dalla DLL . Ecco un esempio :
RPT_init 1RPT_design @ @ @ 2RPT_run 3RPT_print @ 4
Dopo aver collegato tutte le sorgenti e il file DEF , il compilatore crea un file di esportazione con l'estensione EXP e un file di libreria di importazione , con l'estensione LIB . Il compilatore utilizza il file EXP per creare la DLL . Il file LIB è legata al programma chiamante e contiene le informazioni di importazione per le funzioni nella DLL .