A biblioteket for dynamiske koblinger , eller DLL, gjør et program for å laste bare det nødvendige minimum kjørbar kode i minnet under kjøring. Når programmet kaller en funksjon i en DLL, laster operativsystemet DLL-filen i minnet i tråd med programmerer spesifikasjoner. Så lenge du kjører programmet ikke referere til en DLL-funksjonen , DLL trenger ikke opptar plass . Dette sparer ressurser og øker runtime ytelse. Hvis biblioteket var statiske , ville all biblioteket koden bli lagt til hovedprogrammet er kjørbar kode , og den gigantiske program ville ha å bo i minnet for hele runtime . Unix eller Linux-versjon av en Windows DLL er et delt objekt bibliotek som er bygget med utvidelsen SO . Windows , Unix og Linux har spesifikke konvensjoner for å få tilgang til funksjoner i DLL-filer eller delte biblioteker. Instruksjoner
Export Windows DLL objekter ved hjelp Preprocessor Søkeord
en
din DLL header -fil , sette søkeordet " __declspec ( dllexport )" før prototypen på en funksjon , klasse , klasse medlem eller data variabel i DLL. Dette nøkkelordet legger funksjonen prototype til DLL eksport tabellen .
2
Bruk ordinale verdier 1 til N i stedet for funksjon eller klasse medlemsnavnene å spare plass okkupert av DLL eksport bordet , der N er antall objekter eller funksjoner i DLL.
3
Legg søkeordet " __declspec ( DllImport )" før de tilsvarende funksjon prototyper i å kalle programmet eller DLL. Oppkallingsprogrammet import funksjonene som DLL eksporten.
Export Windows DLL funksjoner ved hjelp av en modul Definition File
4
Lag en tekstfil med filtypen DEF og legge den . til prosjektet for DLL i Visual Studio
5
Legg til "BIBLIOTEK " statement med navnet på DLL etter det som følger : en
BIBLIOTEK ReportWriter
6
eventuelt legge til en kort en linje beskrivelse for DLL som følger : en
bESKRIVELSE Dette er en DLL for rapport generasjon funksjonalitet i MyProduct
Dette anbefales
. . Side 7
Legg til en oppføring for hver funksjon eller klasse medlem at DLL ønsker å eksportere , med en valgfri kardinal nummer. Den grunntallet representerer funksjonen med verdier fra 1 til N, hvor N er antallet av funksjoner eksporteres av DLL. Her er et eksempel : en
RPT_init @ 1RPT_design @ 2RPT_run @ 3RPT_print @ 4
Etter knytte all kildekode og dette DEF filen, oppretter kompilatoren en eksport fil med EXP forlengelse og en import bibliotek fil , med LIB forlengelse. Kompilatoren bruker EXP filen til å opprette DLL. Den LIB fil er knyttet til å kalle programmet og holder import informasjon om funksjonene i DLL.