Forskellen mellem DLL og LIB

DLL vs LIB

Et bibliotek er en samling af ressourcer, der kan bruges til at udvikle applikationer. Et bibliotek består normalt af underprogrammer, funktioner, klasser, værdier og typer. Under linkprocessen (normalt udført af en linker) henviser biblioteker og eksekverbare computere til hinanden. Biblioteksfiler er opdelt i statiske og dynamiske biblioteker afhængigt af det tidspunkt, hvor underprogrammerne indlæses i målapplikationen. I overensstemmelse hermed er LIB-filer statisk forbundne biblioteker, og DLL-filer er dynamisk forbundne biblioteker.

Hvad er DLL?

Dynamic Link Library (mere almindeligt kendt som DLL) er en delt biblioteksimplementering udviklet af Microsoft. Det bruger extensions .dll, .ocx eller .drv, 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 (Portable Executable files on 32-bit / 64-bit Windows and New Executable on 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 fontfiler (med .fon- og .fot-udvidelser) er eksempler på ressource-DLL'er.

Komponenter, der kaldes sektioner, udgør en DLL, og hvert afsnit har sine egne attributter som skrivebeskyttet / skrivbar og eksekverbar / ikke eksekverbar. Kodedele er eksekverbare, mens datasektioner ikke kan eksekveres. 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, der indeholder basefunktionerne (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 forbundne biblioteker). LIB-filer indeholder en samling af underprogrammer, eksterne funktioner og variabler. LIB-filer løses på kompileringstidspunktet (i modsætning til køretid). Koden kopieres faktisk til målapplikationen. En compiler, linker eller et bindemiddel gør denne opløsning og producerer en objektfil og en eksekverbar fil. Denne proces kaldes statisk build-proces.

Hvad er forskellen mellem DLL og LIB?

LIB-biblioteker kan kaldes i kompileringstiden, men DLL-biblioteker kan kun kaldes i løbet af kørselstiden. LIB-filer er betydeligt større end DLL-filer. Et meget almindeligt problem med DLL-filer er versioneringsproblemet. Dette sker, når koden til DLL'en ændres, og applikationen bruger en forkert version af en DLL. Dette er ikke et problem, der er 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.