A Dynamic Link Library (DLL) angol nyelvről "dinamikus link könyvtár" -ra van lefordítva. A DLL egy futtatható fájl, amely egy megosztott könyvtár funkcióit hajtja végre. Dinamikus összekapcsolása révén a DLL lehetővé teszi a futtatható kód részét képező függvény meghívását.
Maga a futtatható funkciókód egy DLL-ben található, amely számos lefordított, összekapcsolt és tárolt függvényt tartalmaz a használt folyamatokban. A DLL a források és adatok megosztásának folyamatát egyszerűsíti. Lehetővé teszi a rendszerre telepített alkalmazások számára, hogy egyszerre férjenek hozzá a memóriába töltött DLL egyetlen példányának több tartalmához.
Moduláris kódolás - a DLL-ek őse
A DLL létrehozásával kapcsolatos munka kezdetének tekinthető egy olyan programozási módszer megjelenése, mint a moduláris kódolás. Egy időben a moduláris kódolás nagyban megkönnyítette a programozók munkáját, lehetővé téve, hogy ne írjon többször ugyanazt a kódot minden egyes új programhoz. Minden egyszerű program sok hasonló kódot tartalmaz, amelyeket modulok formájában kezdtek el megtervezni, hozzáadva őket új alkalmazásokhoz. Egy ideig a moduláris kódolás volt a legegyszerűbb és leghatékonyabb megoldás, és csak egy hátránya volt. A programokhoz hozzáadott azonos modulok helyet foglaltak el, ami ezekben a napokban kevés volt.
A lemezterület azonos modulokra történő pazarlásának problémája volt az egyetlen, míg csak egyfeladatos operációs rendszerek voltak. A többfeladatos operációs rendszerek, például a Windows megjelenésével újabb probléma merült fel. Most az azonos kódú modulokkal rendelkező programok, ha egyszerre indultak, elkezdték betölteni a RAM-ba, „megemésztve” az összes erőforrást. Érdemes megjegyezni, hogy abban az időben egy 500 megabájtos memóriamodul volt a legnagyobb, és meglehetősen drága volt. De még a RAM maximális mérete sem mentette meg a felhasználókat, a programok teljesen betöltötték a RAM-ot, ami lehetetlenné tette a számítógép normál működését.
A DLL-ek megjelenése
Tisztességes megoldást találtak ezekre a problémákra, így nézett ki: az azonos kódú modulok megszűntek dokkolni a fő programmal, külön futtatható fájlba mentve őket, amelyhez bármely alkalmazás szükség szerint hozzáférhetett. Ez a megoldás képezi az alapját a DLL-eknek, amelyek dinamikusan kapcsolódnak bármely programhoz. Most már futtatható kódot lehet tárolni ezekben a könyvtárakban funkciók vagy eljárások, grafikák vagy akár videók formájában, ami lehetővé tette a lemezterület és a RAM-erőforrások megtakarítását.
A dinamikus linkkönyvtárak egyetlen hátránya a program betöltésével járó többletidő pazarlása. Ezen kisebb hátrány mellett a DLL csupán előnyökből áll. Ezért ezeket a könyvtárakat széles körben használják, és a programozók szinte minden alkalmazásban használják.