Файлы dll что это

DLL (англ. Dynamic Link Library — «библиотека динамической компоновки», «динамически подключаемая библиотека») в операционных системах Microsoft Windows и IBM OS/2 — динамическая библиотека, позволяющая многократное использование различными программными приложениями. Эти библиотеки обычно имеют расширение DLL, OCX (для библиотек содержащих ActiveX), или DRV (для ряда системных драйверов). Формат файлов для DLL такой же, как для EXE-файлов Windows, т. е. Portable Executable (PE) для 32-битных и 64-битных приложений Windows и New Executable (NE) — для 16-битных. Так же, как EXE, DLL могут содержать секции кода, данных и ресурсов. В системах Unix аналогичные функции выполняют так называемые общие объекты (англ. shared objects ).

Файлы данных с тем же форматом как у DLL, но отличающиеся расширением или содержащие только секцию ресурсов, могут быть названы ресурсными DLL. В качестве примера можно назвать библиотеки значков, иногда имеющие расширение ICL, и файлы шрифтов, имеющих расширение FON и FOT.

Назначение [ править | править код ]

Первоначально предполагалось, что введение DLL позволит эффективно организовать память и дисковое пространство, используя только один экземпляр библиотечного модуля для различных приложений. Это было особенно важно для ранних версий Microsoft Windows с жёсткими ограничениями по памяти.

Далее предполагалось улучшить эффективность разработок и использования системных средств за счёт модульности. Замена DLL-программ с одной версии на другую должна была позволить независимо наращивать систему, не затрагивая приложений. Кроме того, динамические библиотеки могли использоваться разнотипными приложениями — например, Microsoft Office, Microsoft Visual Studio и т. п.

В дальнейшем идея модульности выросла в концепции Component Object Model и System Object Model.

Фактически полных преимуществ от внедрения динамически подключаемых библиотек получить не удалось по причине явления, называемого DLL hell («DLL-ад»). DLL hell возникает, когда несколько приложений требуют одновременно различные, не полностью совместимые версии библиотек, что приводит к сбоям в этих приложениях и к конфликтам, резко снижая общую надёжность операционных систем. Поздние версии Microsoft Windows стали разрешать параллельное использование разных версий DLL (технология Side-by-side assembly), что свело на нет преимущества изначального принципа модульности.

Читайте также:  Чем отличается реплика от оригинала телефон

Существует также ряд утилит, которые позволяют отследить зависимости приложений от подключаемых DLL. К примеру, see_dll из комплекта Microsoft Visual Studio.

Описание формата DLL

Формат DLL является динамической библиотекой, которая отвечает за получение доступа различными программными комплексами к общедоступному системному функционалу. Достаточно часто, DLL файл входит в состав неотъемлемых элементов операционной системы Windows. Такой формат файлов, как Link Library, может представлять из себя и часть прикладных программ.

Многие из динамических библиотек, способствуют реализации программных функций, отвечающих за соединение с внешними устройствами либо работу с жесткими дисками. Применение файла DLL, находят и в кроссплатформенных приложениях для Mac, однако основное распространение Dynamic Link, наблюдается в операционной системе Windows, в которой не обойтись без библиотек DLL. Подобный тип файла, может встречаться и в системе IBM OS/2.

Так как .dll файл могут содержать системные файлы, его изменение либо полное удаление, может приводить к возникновению ошибок и неполадок не только в работоспособности определенного программного обеспечения, но и всей ОС. Специалисты не рекомендуют неопытным пользователям, производить открытие или редактирование файла .dll без необходимости.

Рад видеть вас на своём блоге!

Нашли у себя в компьютере DLL файлы и понятия не имеете, что это такое? Я поделюсь с вами информацией. Без них большинство программ и операционная система в целом не смогут функционировать. Хотите знать больше? Не пропустите мою статью.

Разъяснение

Данная аббревиатура расшифровывается как «Dynamic Link Library», а на нашем языке — «библиотека динамической компоновки» или чаще как «динамически подключаемая библиотека». Она по умолчанию устанавливается в ОС Windows, а раньше ещё и в IBM OS/2, пока она не прекратила своё существование. Библиотека предназначена для многократного использования различным программным обеспечением.

DLL содержит в себе важные сведения: о конфигурации системы, совместимости устройств, командах для их корректной работы и пр. Всё это хранится в файлах одноимённого расширения либо .drv для нескольких системных драйверов, .cpl — для файлов панели управления или в .ocx, если речь идёт о библиотеках содержащих фреймворк ActiveX.

Читайте также:  Смартфон рейзер фон 2

Объекты .dll включают в себя коды и данные, которые могут использоваться одновременно несколькими программами. Своим содержимым они похожи на тип файлов EXE. Кстати, у них даже одинаковый формат: Portable Executable (PE) для 32-х и 64-х битных приложений Windows, и New Executable (NE) для 16-битных.

Многие устанавливаемые нами программы уже имеют в своём наборе такие файлы. В противном случае они пользуются теми, которые есть в операционке.

Динамические библиотеки на практике

В теории вроде бы всё ясно (или не совсем? 🙂 ). Но чтобы понять суть предмета нашей беседы, необходимо увидеть его с практической стороны. Без него проги не могут работать, потому что не знают, как это делать.

Вот вам элементарный пример. Чтобы на чистом листе в Office Word начали появляться вводимые вами символы, нужны компоненты библиотеки. Потому что сама по себе ОС не в курсе, что значит та или иная нажатая вами клавиша.

Даже когда вы просто включаете компьютер и ещё не успели ничего сделать, библиотека уже активно действует: показала вам время и дату, открыла программы в автозапуске, выстроила оформление рабочего стола, проштудировала сведения о конфигурации операционки и т. п. Вдобавок, как система общаться с мышью, клавиатурой, принтером и другим оборудованием, тоже объясняют DLL файлы.

Преимущества DLL

Для чего предназначены динамические библиотеки? Они создавались для того, чтобы:

  • Экономить ресурсы системы. Как я уже упоминал, для разных приложений может быть использован единовременно один и тот же набор функций. Благодаря этому эргономично расходуется память ОС и дисковое пространство.
  • Применять к разноплановому софту, например, к офисным приложениям и в то же время к Visual Studio (кто не знает, это продукт для програмистов) и пр.
  • Совершенствовать операционку посредством модульности. Проще говоря: разработчики с каждой новой версией совершенствуют незримые для пользователя библиотеки. Благодаря этому программное обеспечение становится более функциональным.
  • Облегчить инсталляцию. Если для работы той или иной программы требуется исправить или обновить функцию в библиотеке, не нужно её повторно прикреплять к проге для открытия или установки. Более того, всё остальное ПО автоматически поймёт, что вы внесли коррективы, и воспользуется уже новой версией по мере надобности.
Читайте также:  Формула расчета объема усеченного конуса

Ад для библиотек

В полной мере реализовать описанные выше преимущества всё-таки не удалось. Дело в том, что ПО может одновременно потребовать не полностью совместимые версии библиотек. Из-за этого случаются сбои в его работе. Вдобавок вследствие конфликтов снижается надёжность ОС в целом. Такое явление называется «DLL hell» (если кто не знает, то последнее слово переводится как «ад»).

Как это видит пользователь?

Предположим, вы никогда не обновляли на своём компьютере эти библиотеки и установили игру, выпущенную лет 5 назад. Она работает у вас нормально. Затем вы обнаружили, что недавно вышла последняя часть игры, и инсталлировали её тоже.

Однако вторая уже отказывается запускаться. Своё неповиновение она сопроводила сообщением, мол, ошибка DLL, отсутствует файл. Это значит, что имеющиеся на вашем компе компоненты, необходимые для её запуска, не работают. Или вовсе отсутствуют.

Такое может быть из-за неправильного указания разрядности или версии системы в процессе установки игры. Это как пример, могут быть и другие причины конечно же. Ведь программы и игры могут перезаписывать файлы библиотеки (см. последнее преимущество). Вследствие чего тот или иной софт порой отказывает в работе.

Решение

Чтобы подобные ситуации не всплывали, в последних поколениях Виндовс появилась технология Side-by-side assembly. Она позволяет использоваться параллельно разные версии библиотек. Правда, это нововведение идёт в разрез с принципом модульности, который изначально был преимуществом.

В случаях, когда система выдаёт ошибку DLL, можно попробовать скачать и установить обновлённые отдельные компоненты. Или даже весь пакет целиком. Кстати, отследить, какие приложение используют те или иные DLL файлы, можно при помощи специальных утилит, например, Dependency Walker .

Если вам станет что-то непонятно в компьютере или просто скучно, возвращайтесь. У меня всегда найдутся полезные статьи 😉