DLL vs LIB
Et bibliotek er en samling ressourcer, der kan bruges til at udvikle applikationer. Et bibliotek består normalt af underrutiner, funktioner, klasser, værdier og typer. Under sammenkædningsprocessen (normalt udført af en linker) henviser biblioteker og eksekverbare filer til hinanden. Biblioteksfiler er opdelt i statiske og dynamiske biblioteker afhængigt af det tidspunkt, hvorpå subrutinerne indlæses i målapplikationen. Følgelig er LIB-filer statisk linkede biblioteker, og DLL-filer er dynamisk linkede biblioteker.
Hvad er DLL?
Dynamic Link Library (mere almindeligt kendt som DLL) er en implementering af et delt bibliotek udviklet af Microsoft. Det bruger.dll-,.ocx- eller.drv-udvidelser, og de bruges i Microsoft Windows og OS / 2-operativsystemer..dll bruges af de almindelige DLL-filer. Og.ocx-udvidelse bruges af biblioteker, der indeholder ActiveX-kontroller, og.drv-udvidelse bruges af ældre systemdriverfiler. DLL-filformatet er det samme som Windows EXE-filer (bærbare eksekverbare filer på 32-bit / 64-bit Windows og nye eksekverbare 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-filformat ressource-DLL'er. Ikonbiblioteker (med.icl-udvidelse) og fontfiler (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. Kodeafsnit er eksekverbare, mens datasektioner er ikke eksekverbare. Kodeafsnittene deles, og datasektioner er private. Det betyder, at alle processer, der bruger DLL, bruger den samme kopi af koden, mens hver proces har sin egen kopi af dataene. Det primære dynamiske bibliotek til 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 lettere 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 kompileringstid (i modsætning til kørselstid). Koden kopieres faktisk ind i målapplikationen. En kompilator, linker eller et bindemiddel 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 i løbet af kompileringstiden, men DLL-biblioteker kan kun kaldes i løbet af løbetiden. LIB-filer er betydeligt større end DLL-filer. Et meget almindeligt problem med DLL-filer er versioneringsproblemet. Dette sker, når DLL-koden ændres, og applikationen bruger en forkert version af en DLL. Dette er ikke et problem forbundet med LIB-filer. Med hensyn til genanvendelighed er DLL'er altid bedre end LIB'er, når du skriver nye versioner af systemer eller helt nye applikationer.