DLL mot LIB
Ett bibliotek är en samling resurser som kan användas för att utveckla applikationer. Ett bibliotek består vanligtvis av underrutiner, funktioner, klasser, värden och typer. Under länkningsprocessen (vanligtvis görs av en länkare) hänvisar bibliotek och körbara filer till varandra. Biblioteksfiler delas in i statiska och dynamiska bibliotek beroende på när subrutinerna laddas till målapplikationen. Följaktligen är LIB-filer statiskt länkade bibliotek och DLL-filer är dynamiskt länkade bibliotek.
Vad är DLL?
Dynamic Link Library (mer allmänt känt som DLL) är en implementering av delat bibliotek utvecklat av Microsoft. Den använder.dll-,.ocx- eller.drv-tilläggen och de används i Microsoft Windows och OS / 2-operativsystem..dll används av vanliga DLL-filer. Och.ocx-tillägget används av bibliotek som innehåller ActiveX-kontroller och.drv-tillägget används av äldre systemdrivrutinfiler. DLL-filformatet är detsamma som Windows EXE-filer (bärbara körbara filer på 32-bitars / 64-bitars Windows och nya körbara på 16-bitars Windows). Därför kan alla kombinationer av kod, data och resurser finnas i DLL-filer (precis som i EXE-filer). Faktum är att datafiler med DLL-filformat kallas resurs-DLL-filer. Ikonbibliotek (med.icl-tillägg) och teckensnittsfiler (med.fon- och.fot-tillägg) är exempel på resurs-DLL-filer.
Komponenter som kallas sektioner utgör en DLL och varje sektion har sina egna attribut som skrivskyddad / skrivbar och körbar / ej körbar. Kodavsnitt är exekverbara, medan datasektioner inte kan köras. Kodavsnitten delas och datasektioner ä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 sin egen kopia av data. Det primära dynamiska biblioteket för Windows är kernel32.dll, som innehåller basfunktionerna (fil- och minnesrelaterad funktionalitet) på Windows. COM (Component Object Model) är förlängningen av DLL till OOP (Object Oriented Programming). Konventionella DLL-filer är lättare 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 underrutiner, externa funktioner och variabler. LIB-filer löses vid sammanställningstid (i motsats till körtid). Koden kopieras faktiskt till målapplikationen. En kompilator, länkare eller ett bindemedel gör denna upplösning och producerar en objektfil och en körbar fil. Denna process kallas statisk byggprocess.
Vad är skillnaden mellan DLL och LIB?
LIB-bibliotek kan anropas under kompileringstiden, men DLL-bibliotek kan bara anropas under körningstiden. LIB-filer är betydligt större än DLL-filer. Ett mycket vanligt problem med DLL-filer är versioneringsproblemet. Detta händer när DLL-koden ändras och applikationen använder en fel version av en DLL. Detta är inte ett problem associerat med LIB-filer. När det gäller återanvändbarhet, när du skriver nya versioner av system eller helt nya applikationer, är DLL-filer alltid bättre än LIB.