Dynamic Link Library (DLL) е преведена от английски като „динамична библиотека с връзки“. DLL е изпълним файл, който изпълнява функциите на споделена библиотека. Чрез динамичното си свързване DLL предоставя начин за извикване на функция, която е част от изпълнимия код.
Самият изпълним код на функция е в DLL, който съдържа няколко компилирани, свързани и съхранени функции в използваните процеси. DLL служи за опростяване на процеса на споделяне на източници и данни. Той позволява на приложенията, инсталирани в системата, да имат достъп до множество съдържания на едно копие на DLL, заредено в паметта едновременно.
Модулно кодиране - предшественик на DLL
Началото на работата по създаването на DLL може да се счита за появата на такъв метод на програмиране като модулно кодиране. По едно време модулното кодиране значително улесни работата на програмистите, като направи възможно няколко пъти да не се пише един и същ код за всяка нова програма. Всички прости програми съдържат много подобен код, който те започнаха да проектират под формата на модули, добавяйки ги към нови приложения. За известно време модулното кодиране беше най-простото и ефективно решение и имаше само един недостатък. Идентични модули, добавени към програмите, заемаха дисково пространство, което по онова време беше оскъдно.
Проблемът с загубата на дисково пространство върху идентични модули беше единственият, докато имаше само еднозадачни операционни системи. С появата на многозадачни операционни системи като Windows, възникна и друг проблем. Сега програми с модули със същия код, когато се стартираха едновременно, започнаха да го зареждат в RAM, „изяждайки“всички ресурси. Струва си да се отбележи, че по това време модул памет от 500 мегабайта беше най-големият от съществуващите и беше доста скъп. Но дори максималният размер на RAM не спаси потребителите, програмите заредиха RAM напълно, правейки нормалната работа на компютъра невъзможна.
Появата на DLL
Беше намерено прилично решение на тези проблеми, изглеждаше така: модулите със същия код престанаха да се свързват с основната програма, запазвайки ги в отделен изпълним файл, до който всяко приложение може да има достъп при необходимост. Именно това решение формира основата на DLL, които динамично се свързват с всяка програма. Сега е възможно да се съхранява изпълним код в тези библиотеки под формата на функции или процедури, графики и дори видеоклипове, което направи възможно спестяването на дисково пространство и ресурси на RAM.
Единственият недостатък на динамичните библиотеки за връзки е загубата на допълнително време за зареждане на програмата. В допълнение към този малък недостатък, DLL се състои само от предимства. Следователно тези библиотеки се използват широко и се използват от програмистите в почти всяко приложение.