DLL vs LIB
Et bibliotek er en samling af ressourcer, der kan bruges til at udvikle applikationer. Et bibliotek består norm alt af underrutiner, funktioner, klasser, værdier og typer. Under sammenkædningsprocessen (norm alt udført af en linker), refererer biblioteker og eksekverbare til hinanden. Biblioteksfiler er opdelt i statiske og dynamiske biblioteker afhængigt af det tidspunkt, hvor underrutinerne indlæses til målapplikationen. Derfor er LIB-filer statisk linkede biblioteker, og DLL-filer er dynamisk linkede biblioteker.
Hvad er DLL?
Dynamic Link Library (mere kendt som DLL) er en delt biblioteksimplementering udviklet af Microsoft. Den bruger.dll-,.ocx- eller.drv-udvidelserne, og de bruges i Microsoft Windows og OS/2-operativsystemer..dll bruges af de almindelige DLL-filer. Og.ocx-udvidelsen bruges af biblioteker, der indeholder ActiveX-kontroller, og.drv-udvidelsen bruges af ældre systemdriverfiler. DLL-filformatet er det samme som Windows EXE-filerne (bærbare eksekverbare filer på 32-bit/64-bit Windows og New Executable på 16-bit Windows). Derfor kan enhver kombination af kode, data og ressourcer være indeholdt i DLL-filer (ligesom i EXE-filer). Faktisk kaldes datafiler med DLL-filformatet ressource-DLL'er. Ikonbiblioteker (med.icl-udvidelse) og skrifttypefiler (med.fon- og.fot-udvidelser) er eksempler på ressource-DLL'er.
Komponenter kaldet sektioner udgør en DLL og hver sektion har sine egne attributter som skrivebeskyttet/skrivbar og eksekverbar/ikke eksekverbar. Kodesektioner er eksekverbare, mens datasektioner ikke kan eksekveres. Kodesektionerne er delte og datasektioner er private. Det betyder, at alle processer, der bruger DLL'en, vil bruge den samme kopi af koden, mens hver proces vil have sin egen kopi af dataene. Det primære dynamiske bibliotek for Windows er kernel32.dll, som indeholder basisfunktionerne (fil- og hukommelsesrelateret funktionalitet) på Windows. COM (Component Object Model) er udvidelsen af DLL til OOP (Object Oriented Programming). Konventionelle DLL'er er nemmere at bruge end COM-filer.
Hvad er LIB?
LIB-filer er statiske biblioteker (også kendt som statisk linkede biblioteker). LIB-filer indeholder en samling af underrutiner, eksterne funktioner og variabler. LIB-filer løses ved kompilering (i modsætning til kørselstid). Koden kopieres faktisk ind i målapplikationen. En compiler, linker eller en binder vil gøre denne opløsning og producere en objektfil og en eksekverbar fil. Denne proces kaldes statisk byggeproces.
Hvad er forskellen mellem DLL og LIB?
LIB-biblioteker kan kaldes under kompileringstiden, men DLL-biblioteker kan kun kaldes under kørselstiden. LIB-filer er betydeligt større end DLL-filer. Et meget almindeligt problem med DLL filer er versionsproblemet. Dette sker, når koden for DLL'en ændres, og applikationen bruger en forkert version af en DLL. Dette er ikke et problem forbundet med LIB filer. Med hensyn til genanvendelighed, når du skriver nye versioner af systemer eller helt nye applikationer, er DLL'er altid bedre end LIB'er.