En dynamisk länk bibliotek , eller DLL , gör ett program för att ladda bara den nödvändiga koden minsta körbar i minnet vid körning . Närhelst programmet anropar en funktion i en DLL , laddar operativsystemet DLL i minnet i enlighet med programmerarens specifikationer . Så länge som det pågående programmet inte refererar en DLL-funktion , DLL behöver inte upptar utrymme . Detta sparar resurser och ökar runtime prestanda . Om biblioteket var statiska , skulle alla bibliotekets kod fogas till huvudprogrammet körbara kod , och den gigantiska programmet skulle behöva stanna i minnet för hela körningen . Unix eller Linux-version av en Windows DLL är ett delat objekt bibliotek som är byggd med förlängningen så . Windows , Unix och Linux har särskilda konventioner för att komma åt funktioner i DLL-filer eller delade bibliotek . Instruktioner
exportera Windows DLL objekt med Preprocessor Keyword
1
din DLL header -fil , sätta sökordet " __declspec ( dllexport ) " innan en prototyp av en funktion , klass , klass ledamot eller datavariabeln i DLL . Det här nyckelordet lägger funktionen prototyp till DLL export bord .
2
Använd ordningstal värden 1 till N i stället för funktion eller klass medlemmars namn för att spara utrymme upptas av DLL Exportera tabell , där N är antal objekt eller funktioner i DLL . Addera 3
Lägg sökordet " __declspec ( DllImport ) " innan motsvarande funktion prototyper i det anropande programmet eller DLL . Den anropande programmet importen de funktioner som de DLL exporten .
Exportera Windows DLL funktioner med hjälp av en modul Definition File
4
Skapa en textfil med ändelsen DEF och lägg den . projektet för din DLL i Visual Studio
5
Lägg till " BIBLIOTEK " uttalande med namnet på DLL efter det så här :
LIBRARY ReportWriter
6
lägga Eventuellt en kort en rad beskrivning av DLL enligt följande :
BESKRIVNING Detta är en DLL för rapportgenerering funktionalitet i MyProduct
Detta rekommenderas
. .
7
Lägg till en post för varje funktion eller klass ledamot att DLL vill exportera , med ett valfritt kardinal nummer . Kardinalen numret representerar funktionen och tar värden från 1 till N , där N är antalet funktioner som exporteras av DLL . Här är ett exempel :
RPT_init @ 1RPT_design @ 2RPT_run @ 3RPT_print @ 4
Efter sammanlänkar all källkod och detta DEF fil , skapar kompilatorn en exportfil med EXP förlängning och en import bibliotek fil , med LIB förlängning. Kompilatorn använder EXP -filen för att skapa DLL . Lib -filen är länkad till det anropande programmet och håller import information om funktionerna i DLL .