Forskel mellem DLL og LIB

Anonim

DLL vs LIB

Et bibliotek er en samling ressourcer, der kan bruges til at udvikle applikationer. Et bibliotek består sædvanligvis af underrutiner, funktioner, klasser, værdier og typer. Under forbindelsesprocessen (normalt lavet af en linker) henviser biblioteker og eksekverbare filer til hinanden. Biblioteksfiler er opdelt i statiske og dynamiske biblioteker afhængigt af det tidspunkt, hvor underrutinerne er indlæst til målprogrammet. Derfor er LIB-filer statisk forbundne biblioteker, og DLL-filer er dynamisk forbundne biblioteker.

Hvad er DLL?

Dynamisk Link Library (mere almindeligt kendt som DLL) er en fælles bibliotek implementering udviklet af Microsoft. Det bruger. dll,. ocx eller. drv extensions 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 gamle 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 indeholde DLL-filer (ligesom i EXE-filer). Faktisk kaldes datafiler med DLL-filformat ressource DLL'er. Ikonbiblioteker (med. Icl-udvidelse) og skrifttypefiler (med.fon og.fot-udvidelser) er eksempler på ressource-DLL'er.

Komponenter kaldes sektioner udgør en DLL, og hvert afsnit har sine egne attributter som skrivebeskyttet og eksekverbar / ikke-eksekverbar. Kodesektioner kan udføres, mens datasektioner ikke kan køres. Kodesektionerne deles og datasektioner er private. Det betyder, at alle processer, der bruger DLL'en, 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 forbundne biblioteker). LIB-filer indeholder en samling af subrutiner, eksterne funktioner og variabler. LIB-filer løses på kompileringstid (i modsætning til driftstid). Koden kopieres faktisk til målprogrammet. 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 under kompileringstid, men DLL-biblioteker kan kun kaldes i løbetid.LIB-filer er signifikant 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. Hvad angår genanvendelighed, når der skrives nye versioner af systemer eller helt nye applikationer, er DLL'er altid bedre end LIB'er.