Výhody použití knihoven DLL
Dynamické propojení má následující výhody:
Šetří paměť a snižuje prohození.Mnoho procesů může použít současně stejnou DLL knihovnu sdílením jediné kopie DLL knihovny v paměti.Oproti tomu musí systém Windows načíst do paměti kód knihovny pro každou aplikaci sestavenou se staticky propojenou knihovnou.
Šetří prostor na disku.Mnoho aplikací může sdílet jednu kopii knihovny DLL na disku.Oproti tomu každá aplikace sestavená se staticky propojenou knihovnou, má tuto knihovnu propojenou se svou spustitelnou bitovou kopií jako samostatnou kopii.
Aktualizace na knihovnu DLL jsou jednodušší.Při změně funkcí v knihovně DLL není potřeba znovu kompilovat nebo propojovat aplikace používající tuto knihovnu, dokud se nezmění návratové hodnoty nebo argumenty funkcí v knihovně DLL.Oproti tomu staticky propojený objekt kódu vyžaduje opakované propojení s aplikací vždy když se změní jeho funkce.
Poskytuje podporu po uvedení produktu na trh.Například knihovna DLL ovladače zobrazení může být upravena pro podporu zobrazování toho, co nebylo k dispozici při prodeji aplikace.
Podporuje vícejazyčné programy.Programy napsané v rozdílných programovacích jazycích mohou volat stejnou funkci knihovny DLL tak dlouho, dokud dodržují konvenci volané funkce.Programy a funkce DLL musí být kompatibilní následujícími způsoby: pořadí, v nichž funkce očekává uložení argumentů na zásobník, rozhodnutí, zda je za vyčištění zásobníku odpovědná funkce nebo aplikace, a informace, zda jsou kterékoli argumenty předávány v registrech.
Poskytuje mechanismus pro rozšíření tříd knihovny MFC.Můžete odvodit třídy z existujících tříd knihovny MFC a rozšířit jimi knihovnu DLL pro použití v MFC aplikacích.
Usnadňuje vytvoření mezinárodních verzí.Tvorba mezinárodních verzí aplikace je mnohem snazší při umístění prostředků do knihovny DLL.Můžete umístit řetězce pro každou jazykovou verzi vaší aplikace do samostatných prostředků knihovny DLL a mít tak různé jazykové verze pouhým načtením patřičných prostředků.
Potenciální nevýhodou použití knihoven DLL je, že aplikace není samostatná; to závisí na existenci samostatného modulu knihovny DLL.