Skillnad mellan DLL och LIB

DLL vs LIB

Ett bibliotek är en samling resurser som kan användas för att utveckla applikationer. Ett bibliotek består vanligtvis av subrutiner, funktioner, klasser, värden och typer. Under länkningsprocessen (vanligtvis gjort av en länkare) hänvisar bibliotek och exekveringar till varandra. Biblioteksfiler är indelade i statiska och dynamiska bibliotek beroende på tiden då subrutinerna laddas till målprogrammet. Följaktligen är LIB-filer statiskt länkade bibliotek och DLL-filer är dynamiskt länkade bibliotek.

Vad är DLL?

Dynamisk länkbibliotek (mer känt som DLL) är ett gemensamt bibliotek implementerat av Microsoft. Det använder .dll, .ocx eller .drv extensions och de används i Microsoft Windows och OS / 2 operativsystem ... dll används av vanliga DLL-filer. Och .ocx-förlängning används av bibliotek som innehåller ActiveX-kontroller och .drv-förlängning används av äldre systemdrivrutinsfiler. DLL-filformatet är samma som Windows EXE-filerna (Bärbara exekverbara filer på 32-bitars / 64-bitars Windows och Nya körbara på 16-bitars Windows). Därför kan en kombination av kod, data och resurser innehålla DLL-filer (precis som i EXE-filer). Som faktum är datafiler med DLL-filformat kallas resursdlls. Ikonbibliotek (med .icl-förlängning) och fontfiler (med .fon och .fot-tillägg) är exempel på resursdlls.

Komponenter som heter sektioner utgör en DLL och varje avsnitt har egna attribut som skrivskyddade / skrivbara och körbara / ej körbara. Kodsektioner kan köras, medan datasektioner inte kan köras. Kodsektionerna delas och datasektionerna är privata. Det betyder att alla processer som använder DLL kommer att använda samma kopia av koden, medan varje process kommer att ha en egen kopia av data. Det primära dynamiska biblioteket för Windows är kernel32.dll, som innehåller basfunktionerna (fil- och minnerelaterad funktionalitet) på Windows. COM (Component Object Model) är förlängningen av DLL till OOP (Object Oriented Programming). Konventionella DLL-filer är enklare att använda än COM-filer.

Vad är LIB?

LIB-filer är statiska bibliotek (även känt som statiskt länkade bibliotek). LIB-filer innehåller en samling subrutiner, externa funktioner och variabler. LIB-filer löses vid kompileringstid (i motsats till körtid). Koden kopieras faktiskt till målprogrammet. En kompilator, linker eller ett bindemedel kommer att göra denna upplösning och producera en objektfil och en körbar fil. Denna process kallas statisk byggprocess.

Vad är skillnaden mellan DLL och LIB?

LIB-bibliotek kan ringas under kompileringstid, men DLL-bibliotek kan endast ringas under körtiden. LIB-filer är betydligt större än DLL-filer. Ett mycket vanligt problem med DLL-filer är versioneringsproblemet. Detta händer när koden för DLL ändras och programmet använder en felaktig version av en DLL. Detta är inte ett problem som hör samman med LIB-filer. När det gäller återanvändning, när du skriver nya versioner av system eller helt nya applikationer, är DLL alltid bättre än LIB.