Rozdíl mezi LIB a DLL

LIB vs DLL

Při vývoji softwaru se často ptáme, zda chceme použít LIB nebo DLL při obsazení funkcí aplikace. LIB je statická knihovna, do které lze při kompilaci aplikace vkládat funkce a procedury. Knihovna DLL nebo dynamická knihovna provádí stejnou funkci, ale je dynamická v tom smyslu, že aplikace může tyto knihovny volat během běhu a nikoli během kompilace. To představuje v porovnání s použitím LIB několik významných výhod.

Pro začátek byste měli jeden soubor, který je podstatně větší, protože obsahuje celý kód, zatímco při použití DLL byste měli více menších souborů. Kompilace funkcí a procedur by vám také umožnila více opětovného použití, jakmile budete spokojeni s funkcemi knihovny DLL, protože si ji můžete ponechat takovou, jaká je u každé verze aplikace a nemusíte se s ní bavit. Stejnou knihovnu DLL můžete také použít, pokud chcete vytvořit jinou aplikaci, která používá stejné funkce a postupy. Můžete přímo odkazovat na knihovnu DLL, nikoli kopírovat kód ze zdroje, jako byste potřebovali s LIB.

Problém s DLL je při změně obsahu DLL. To může vést k problémům s verzováním, kde aplikace používá nesprávnou verzi DLL způsobující problémy. Chcete-li se těmto problémům vyhnout, musíte sledovat své dll. Neměli byste tento problém s LIB, protože byste dostali pouze jeden velký soubor.

Při vývoji softwaru a výběru DLL byste stále měli soubor LIB v projektu. Ale na rozdíl od použití LIB tento soubor neobsahuje kód funkcí a procedur, ale pouze výhonky, které program potřebuje k vyvolání procedur z DLL.

Souhrn:
1. DLL je knihovna, která obsahuje funkce, které mohou aplikace volat za běhu, zatímco LIB je statická knihovna, jejíž kód musí být během kompilace vyvolán.
2. Použití LIB by mělo za následek jediný soubor, který je podstatně větší, zatímco skončí s několika menšími soubory s DLL
3. DLL jsou opakovaně použitelné než LIB při psaní nových verzí nebo zcela nových aplikací
4. Soubory DLL mohou používat jiné aplikace, zatímco soubory LIB nemohou
5. DLL jsou náchylné k problémům s verzováním, zatímco LIB není
6. Stále byste měli soubor LIB, když vyvíjíte software s DLL, ale obsahuje pouze výhonky