DLL vs LIB
Knihovna je sbírka prostředků, které lze použít k vývoji aplikací. Knihovna se obvykle skládá z podprogramů, funkcí, tříd, hodnot a typů. Během procesu propojování (obvykle provádí linker) se knihovny a spustitelné soubory navzájem odkazují. Soubory knihovny jsou rozděleny na statické a dynamické knihovny v závislosti na době, kdy jsou podprogramy načteny do cílové aplikace. Soubory LIB jsou tedy staticky propojené knihovny a soubory DLL jsou dynamicky propojené knihovny.
Co je DLL?
Dynamic Link Library (běžněji známá jako DLL) je implementace sdílené knihovny vyvinutá společností Microsoft. Využívá příponu.dll,.ocx nebo.drv a používá se v operačních systémech Microsoft Windows a OS / 2..dll je používán běžnými soubory DLL. A příponu.ocx používají knihovny, které obsahují ovládací prvky ActiveX a příponu.drv používají starší soubory ovladačů systému. Formát souboru DLL je stejný jako soubory Windows EXE (Přenosné spustitelné soubory ve 32bitových / 64bitových systémech Windows a Nový spustitelný soubor v 16bitových systémech Windows). Proto může být v souborech DLL obsažena jakákoli kombinace kódu, dat a prostředků (stejně jako v souborech EXE). Ve skutečnosti se datové soubory ve formátu souboru DLL nazývají zdrojové DLL. Knihovny ikon (s příponou.icl) a soubory písem (s příponami.fon a.fot) jsou příklady zdrojových knihoven DLL.
Komponenty nazývané sekce tvoří DLL a každá sekce má své vlastní atributy, jako je jen pro čtení / zapisovatelné a spustitelné / nespustitelné. Sekce kódu jsou spustitelné, zatímco datové části nelze spustit. Sekce kódu jsou sdílené a datové sekce jsou soukromé. To znamená, že všechny procesy využívající knihovnu DLL budou používat stejnou kopii kódu, zatímco každý proces bude mít vlastní kopii dat. Primární dynamická knihovna pro Windows je kernel32.dll, která obsahuje základní funkce (funkce související se soubory a pamětí) v systému Windows. COM (Component Object Model) je rozšíření DLL do OOP (Object Oriented Programming). Konvenční knihovny DLL se používají snadněji než soubory COM.
Co je LIB?
Soubory LIB jsou statické knihovny (známé také jako staticky propojené knihovny). Soubory LIB obsahují kolekci podprogramů, externích funkcí a proměnných. Soubory LIB jsou vyřešeny v době kompilace (na rozdíl od běhu). Kód je ve skutečnosti zkopírován do cílové aplikace. Kompilátor, linker nebo pořadač toto rozlišení provede a vytvoří soubor objektu a spustitelný soubor. Tento proces se nazývá statický proces sestavení.
Jaký je rozdíl mezi DLL a LIB?
Knihovny LIB lze volat během kompilace, ale knihovny DLL lze volat pouze za běhu. Soubory LIB jsou podstatně větší než soubory DLL. Velmi častým problémem se soubory DLL je problém s verzí. K tomu dojde, když se změní kód DLL a aplikace použije nesprávnou verzi DLL. To není problém spojený se soubory LIB. Pokud jde o opětovné použití, při psaní nových verzí systémů nebo zcela nových aplikací jsou knihovny DLL vždy lepší než knihovny LIB.