Модульний кодинг - предок бібліотек DLL
Початком роботи над створенням бібліотеки DLL можна вважати появу такого методу програмування, як модульний кодинг. Модульний кодинг свого часу суттєво полегшив роботу програмістів, дозволить не писати один і той же код для кожної нової програми по кілька разів. Всі прості програми містять багато схожого коду, який стали оформляти у вигляді модулів, додаючи їх до нових додатків. Певний час модульний кодинг був самим простим і ефективним рішенням і мав тільки один недолік. Однакові модулі, що додаються до програм, займали дисковий простір, якого в ті часи було небагато.
Проблема розтрати місця на диску на однакові модулі була єдиною, поки існували тільки однозадачні ОС. З появою багатозадачних операційних систем таких, як наприклад Windows, виникла ще одна проблема. Тепер програми мають модулі з однаковим кодом при одночасному запуску стали вантажити його в оперативну пам`ять, «з`їдаючи» всі ресурси. Варто відзначити, що в той період часу модуль пам`яті в 500 мегабайт був найбільшим з існуючих і коштував він досить дорого. Але навіть максимальний розмір оперативної пам`яті не рятував користувачів, програми завантажували оперативку повністю, роблячи нормальну роботу комп`ютера неможливою.
Поява бібліотек DLL
Гідне рішення цих проблем було знайдено, виглядало воно так: модулі з однаковим кодом перестали стикувати з основною програмою, зберігаючи їх в окремий виконуваний файл, до якого могло в міру потреби звертатися будь-який додаток. Саме це рішення і є основою бібліотек DLL, які динамічно підключаються до будь-якими програмами. З`явилася можливість зберігати в цих бібліотеках виконуваний код у вигляді функцій або процедур, графіку і навіть відеоролики, що дозволило економити дисковий простір і ресурси оперативної пам`яті.
Єдиний недолік динамічних бібліотек - трата зайвого часу на завантаження програми. Крім цього несуттєвого недоліку DLL складається з одних тільки переваг. Тому дані бібліотеки отримали широке застосування і використовуються програмістами практично в кожному додатку.