DLL-библиотека – это файл с расширением DLL, который динамически подключается операционной системой или приложением, когда его содержимое необходимо для дальнейшего выполнения кода. Он содержит различные данные, и в первую очередь это функции. В отличие от исполняемых файлов они могут выполняться по одной.
Предназначение DLL-файлов
Библиотеки динамической компоновки (БДК) нужны для работы приложений и других таких же модулей. Содержащиеся в них функции бывают двух типов:
- экспортированные – рассчитаны на вызов иными модулями, программами, библиотеками;
- внутренние – используются только библиотекой, в которой хранятся.
Обычно файлы формата DLL способны экспортировать данные на внешние источники, но чаще всего манипулируют ими посредством встроенных функций. При этом ничто не препятствует внешним модулям считывать их или записывать в эти адреса – импортировать собственные данные в DLL.
Также библиотеки бывают с компоновкой во время загрузки (функции библиотек вызываются во время старта программы) и во время выполнения (подгружаются в процессе функционирования приложения).
БДК – один из методов модульной обработки программ, позволяющий изменять, модифицировать и использовать возможности приложений повторно. Они снижают расход оперативной памяти. Когда нескольким модулям нужно использовать одну функцию, они получают готовую информацию из ДЛЛ, совместно взаимодействуя с ее кодом.
В виде динамических библиотек также выполнены следующие элементы операционных систем Windows:
- CPL – апплеты Панели управления;
- DRV – драйверы периферийных устройств, в частности принтеров;
- OCX – элементы ActiveX, такие, как Календарь.
Структура
Прежде чем описать, чем открыть файл формата DLL, для понимания вопроса стоит хотя бы поверхностно понять их структуру. В состав библиотеки входят функции, которые можно вызывать по одной в любой последовательности – они организованы в виде модулей. Также существует возможность указывать функцию точки входа в ДЛЛ, называемую DllMain. Она вызывается в моменты прикрепления или отделения потоков от БДК.
Для начинающих пользователей без знания языков программирования открыть такой файл не получится. Вы можете разве что просмотреть список содержащихся в файле функций, например через утилиту Universal Viewer. Хотя в некоторых приложениях есть опция открытия ДЛЛ для доступа к хранящимся в них функциям.
Преимущества динамических библиотек
Мы уже выяснили, что ДЛЛ позволяют разбивать код на модули, повторно применять их, использовать несколькими приложениями совместно.
Модульность снижает расход ОЗУ, ведь каждый компонент загружается в память только по требованию, когда его функциональность необходима. Также библиотеки снижают размер места, необходимого для хранения файлов приложения на дисках, облегчают разработку ПО. Уже существующие функции можно вызывать из внешних модулей, а не добавлять лишние строчки программного кода.
Последний весомый плюс динамически подключаемых библиотек – простота установки и развертывания. Их легко обновлять, вносить правки можно только в отдельные структуры (модули) приложения, не затрагивая его ядро и другие модули.
Из недостатков отметим зависимость: если одно приложение прерывает зависимость другого от DLL, значит, первая программа не запустится. Эту проблему решили применением сборок после появления NET Framework. Второй минус – при отсутствии на компьютере нужных игре/приложению DLL-файлов они не запустятся.