DLL vs LIB
Et bibliotek er en samling ressurser som kan brukes til å utvikle applikasjoner. Et bibliotek består vanligvis av subrutiner, funksjoner, klasser, verdier og typer. Under koblingsprosessen (vanligvis utført av en linker), refererer biblioteker og kjørbare til hverandre. Bibliotekfiler er delt inn i statiske og dynamiske biblioteker avhengig av tidspunktet da subrutinene lastes til målapplikasjonen. Følgelig er LIB-filer statisk koblede biblioteker og DLL-filer er dynamisk koblede biblioteker.
Hva er DLL?
Dynamic Link Library (mer kjent som DLL) er en delt bibliotekimplementering utviklet av Microsoft. Den bruker utvidelsene.dll,.ocx eller.drv, og de brukes i operativsystemene Microsoft Windows og OS/2..dll brukes av de vanlige DLL-filene. Og.ocx-utvidelsen brukes av biblioteker som inneholder ActiveX-kontroller og.drv-utvidelsen brukes av eldre systemdriverfiler. DLL-filformatet er det samme som Windows EXE-filene (bærbare kjørbare filer på 32-bit/64-bit Windows, og Ny kjørbar på 16-bit Windows). Derfor kan enhver kombinasjon av kode, data og ressurser finnes i DLL-filer (akkurat som i EXE-filer). Faktisk kalles datafiler med DLL-filformatet ressurs-DLL-er. Ikonbiblioteker (med.icl-utvidelse) og skriftfiler (med.fon- og.fot-utvidelser) er eksempler på ressurs-DLL-er.
Komponenter k alt seksjoner utgjør en DLL og hver seksjon har sine egne attributter som skrivebeskyttet/skrivbar og kjørbar/ikke kjørbar. Kodeseksjoner er kjørbare, mens dataseksjoner er ikke kjørbare. Kodedelene er delt og datadelene 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 DLL-er 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 løses ved kompilering (i motsetning til kjøretid). Koden kopieres faktisk inn til målapplikasjonen. En kompilator, linker eller en binder 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 kompileringstiden, men DLL-biblioteker kan bare kalles under kjøretiden. LIB-filer er betydelig større enn DLL-filer. Et veldig vanlig problem med DLL filer er versjonsproblemet. Dette skjer når koden til DLL-en endres og applikasjonen bruker en feil versjon av en DLL. Dette er ikke et problem knyttet til LIB filer. Når det gjelder gjenbrukbarhet, når du skriver nye versjoner av systemer eller helt nye applikasjoner, er DLL-er alltid bedre enn LIB-er.