Динамически подключаемая библиотека: различия между версиями
0men (обсуждение | вклад) (Новая страница: «{{KO}} {{Вика}} '''DLL''' (Dynamic Link Library — «библиотека динамической компоновки», «динамически под…») |
R4sas (обсуждение | вклад) м (R4sas переименовал страницу CapsCleanup/динамически подключаемая библиотека в Динамически подключаемая библиотека поверх перенаправления…) |
||
(не показаны 3 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
{{ | {{КО}} | ||
{{Вика}} | {{Вика}} | ||
'''DLL''' (Dynamic Link Library — «библиотека динамической компоновки», «динамически подключаемая библиотека») в операционных системах ''[[Microsoft Windows]]'' и ''[[IBM OS/2]]'' — динамическая [[библиотека (программирование)|библиотека]], позволяющая многократное использование различными программными приложениями. K ''DLL'' относятся также элементы управления [[Microsoft ActiveX|''ActiveX'']] и [[драйвер]]ы. В системах ''[[UNIX]]'' аналогичные функции выполняют так называемые [[общий объект|общие объекты]] ( | '''DLL''' (Dynamic Link Library — «библиотека динамической компоновки», «динамически подключаемая библиотека») в операционных системах ''[[Microsoft Windows]]'' и ''[[IBM OS/2]]'' — динамическая [[библиотека (программирование)|библиотека]], позволяющая многократное использование различными программными приложениями. K ''DLL'' относятся также элементы управления [[Microsoft ActiveX|''ActiveX'']] и [[драйвер]]ы. В системах ''[[UNIX]]'' аналогичные функции выполняют так называемые [[общий объект|общие объекты]] (shared objects). | ||
Формат файлов ''DLL'' придерживается тех же соглашений, что и [[Portable Executable|формат исполняемых файлов]], сочетая код, таблицы и ресурсы, отличаясь лишь интерпретацией некоторых полей. | Формат файлов ''DLL'' придерживается тех же соглашений, что и [[Portable Executable|формат исполняемых файлов]], сочетая код, таблицы и ресурсы, отличаясь лишь интерпретацией некоторых полей. |
Текущая версия на 13:23, 3 июня 2017
|
DLL (Dynamic Link Library — «библиотека динамической компоновки», «динамически подключаемая библиотека») в операционных системах Microsoft Windows и IBM OS/2 — динамическая библиотека, позволяющая многократное использование различными программными приложениями. K DLL относятся также элементы управления ActiveX и драйверы. В системах UNIX аналогичные функции выполняют так называемые общие объекты (shared objects).
Формат файлов DLL придерживается тех же соглашений, что и формат исполняемых файлов, сочетая код, таблицы и ресурсы, отличаясь лишь интерпретацией некоторых полей.
Назначение[править]
Первоначально предполагалось, что введение DLL позволит эффективно организовать память и дисковое пространство, используя только один экземпляр библиотечного модуля для различных приложений. Это было особенно важно для ранних версий Microsoft Windows с жёсткими ограничениями по памяти.
Далее предполагалось улучшить эффективность разработок и использования системных средств за счёт модульности. Замена DLL-программ с одной версии на другую должна была позволить независимо наращивать систему, не затрагивая приложений. Кроме того, динамические библиотеки могли использоваться разнотипными приложениями — например, Microsoft Office, Microsoft Visual Studio и т. п.
В дальнейшем идея модульности выросла в концепции Component Object Model и System Object Model.
Фактически полных преимуществ от внедрения динамически подключаемых библиотек получить не удалось по причине явления, называемого DLL hell («DLL-ад»). DLL hell возникает, когда несколько приложений требуют одновременно различные, не полностью совместимые версии библиотек, что приводит к сбоям в этих приложениях и к конфликтам типа DLL hell, резко снижая общую надёжность операционных систем. Поздние версии Microsoft Windows стали разрешать параллельное использование разных версий DLL (технология Side-by-side assembly), что свело на нет преимущества изначального принципа модульности.