Výhody dynamického propojení
Dynamické propojení má oproti statickému propojení následující výhody:
- Více procesů, které načítají stejnou knihovnu DLL na stejné základní adrese, sdílejí jednu kopii knihovny DLL ve fyzické paměti. Tímto způsobem ušetříte systémovou paměť a snížíte stránkování.
- Když se funkce v knihovně DLL změní, aplikace, které je používají, nemusí být rekompilovány ani znovu propojeny, pokud argumenty funkce, konvence volání a návratové hodnoty se nemění. Naproti tomu staticky propojený kód objektu vyžaduje, aby se aplikace při změně funkcí znovu propojila.
- Knihovna DLL může poskytovat podporu po prodeji. Například knihovnu DLL ovladače zobrazení lze upravit tak, aby podporovala zobrazení, které nebylo k dispozici při počátečním odeslání aplikace.
- Programy napsané v různých programovacích jazycích mohou volat stejnou funkci DLL, pokud programy dodržují stejnou konvenci volání, kterou funkce používá. Konvence volání (například C, Pascal nebo standardní volání) řídí pořadí, ve kterém volající funkce musí odesílat argumenty do zásobníku, ať už je funkce nebo volající funkce zodpovědná za vyčištění zásobníku a zda se předávají nějaké argumenty v registrech. Další informace najdete v dokumentaci, která je součástí kompilátoru.
Potenciální nevýhodou používání knihoven DLL je, že aplikace není samostatná; závisí na existenci samostatného modulu DLL. Systém ukončí procesy pomocí dynamického propojení v době načítání, pokud vyžadují knihovnu DLL, která nebyla nalezena při spuštění procesu, a zobrazí uživateli chybovou zprávu. Systém neukončí proces pomocí dynamického propojení za běhu v této situaci, ale funkce exportované chybějící knihovnou DLL nejsou pro program k dispozici.