DLL vs LIB
Et bibliotek er en samling ressurser som kan brukes til å utvikle applikasjoner. Et bibliotek består vanligvis av underrutiner, funksjoner, klasser, verdier og typer. Under koblingsprosessen (vanligvis gjort av en linker), refererer biblioteker og kjørbare til hverandre. Biblioteksfiler er delt inn i statiske og dynamiske biblioteker, avhengig av tidspunktet hvor underrutene lastes til målprogrammet. Følgelig er LIB-filer statisk koblede biblioteker, og DLL-filer er dynamisk koblede biblioteker.
Hva er DLL?
Dynamisk Link Library (mer kjent som DLL) er en felles bibliotek implementering utviklet av Microsoft. Den bruker .dll, .ocx eller .drv extensions og de brukes i Microsoft Windows og OS / 2 operativsystemer ... dll brukes av de vanlige DLL-filene. Og .ocx-utvidelse brukes av biblioteker som inneholder ActiveX-kontroller og .drv-utvidelse brukes av eldre systemdriverfiler. DLL-filformatet er det samme som Windows EXE-filene (Bærbare kjørbare filer på 32-biters / 64-biters Windows og Nytt kjørbar på 16-biters Windows). Derfor kan enhver kombinasjon av kode, data og ressurser inneholde DLL-filer (akkurat som i EXE-filer). Som et faktum er datafiler med DLL-filformatet kalt ressursdlls. Ikonbiblioteker (med .icl-utvidelse) og skrifttypefiler (med .fon og .fot-utvidelser) er eksempler på ressurs-DLLer.
Komponenter som kalles seksjoner, utgjør en DLL, og hver seksjon har sine egne attributter som skrivebeskyttet og eksekverbar / ikke-kjørbar. Kodeseksjoner kan kjøres, mens dataseksjonene ikke kan kjøres. Kodeseksjonene deles og dataseksjonene er private. Det betyr at alle prosesser som bruker DLL, vil bruke samme kopi av koden, mens hver prosess vil ha sin egen kopi av dataene. Det primære dynamiske biblioteket for Windows er kernel32.dll, som inneholder basisfunksjonene (fil- og minnerelatert funksjonalitet) på Windows. COM (Component Object Model) er utvidelsen av DLL til OOP (Object Oriented Programming). Konvensjonelle DLLer er enklere å bruke enn COM-filer.
Hva er LIB?
LIB-filer er statiske biblioteker (også kjent som statisk koblede biblioteker). LIB-filer inneholder en samling av subrutiner, eksterne funksjoner og variabler. LIB-filer er løst på kompileringstid (i motsetning til driftstid). Koden er faktisk kopiert til målprogrammet. En kompilator, linker eller et bindemiddel vil gjøre denne oppløsningen og produsere en objektfil og en kjørbar fil. Denne prosessen kalles statisk byggeprosess.
Hva er forskjellen mellom DLL og LIB?
LIB-biblioteker kan kalles under kompileringstid, men DLL-biblioteker kan bare ringes i løpet av kjøretiden. LIB-filer er betydelig større enn DLL-filer. Et svært vanlig problem med DLL-filer er versioneringsproblemet. Dette skjer når koden til DLL er endret og programmet bruker en feil versjon av en DLL. Dette er ikke et problem knyttet til LIB-filer. Når det gjelder gjenbruk, når du skriver nye versjoner av systemer eller helt nye applikasjoner, er DLL alltid bedre enn LIBs.