Что такое Библиотека?
DLL — это библиотека, содержащая код и данные, которые могут использоваться более чем одной программы одновременно. Например, в операционных системах Windows, Библиотека Comdlg32 выполняет общие функции, связанные с диалоговое окно. Таким образом для каждой программы можно использовать функцию, которая содержится в этой библиотеке DLL для реализации диалогового окна Открыть . Это позволяет повысить уровень повторного использования кода и эффективности память.
С помощью библиотеки DLL, может быть модульности в отдельные компоненты программы. Например бухгалтерскую программу может продаваться модулем. Каждый модуль может быть загружен в основной программе во время выполнения, если этот модуль установлен. Поскольку отдельные модули, время загрузки программы выполняется быстрее и модуль загружается только при вызове этой функции.
Кроме того обновления, проще применять для каждого модуля, не влияя на другие части программы. Например имеется программа по зарплате и измените налоговые ставки каждый год. Когда эти изменения изолированы с библиотекой DLL, можно применить обновление без необходимости создания или установить программу целиком.
Кстати, иногда возникает вопрос куда кидать DLL файл, который вы скачали в интернете? Ответ: C:\windows\system32.
Ниже перечислены некоторые из файлов, которые реализованы в виде библиотеки DLL в операционных системах Windows.
- Файлы элементов управления ActiveX (.ocx)
Примером элемента управления ActiveX является элемент управления календаря, который позволяет выбрать дату с помощью календаря. - Файлы (.cpl) панели управления
Пример файла .cpl является элемент, который расположен на панели управления. Каждый элемент представляет собой специализированную библиотеку DLL. - Файлы драйвера (.drv) устройства
Пример драйвера устройства — драйвер принтера, управляет печати на принтере.
Преимущества DLL
Ниже перечислены некоторые преимущества, предоставляемые, когда программа использует библиотеку DLL.
- Использует меньше ресурсов
При нескольких программ с помощью той же библиотеки функций, библиотеки DLL можно уменьшить дублирование кода, который загружается на диске и в оперативной памяти. Это может значительно повлиять на производительность не только программы, работающей в фоновом режиме, но также и другие программы, выполняющиеся в операционной системе Windows. - Модульная архитектура обеспечивает
DLL способствует разработке модульные программы. Это позволяет разрабатывать крупные программы, требующие нескольких языковых версий или программу, которая требует модульную архитектуру. Пример модульной программы является бухгалтерскую программу, которая имеет много модулей, которые могут быть загружены динамически во время выполнения. - Замедления развертывания и установки
Если функции в библиотеке DLL требуется обновление или исправление, развертывания и установки библиотеки DLL не требуется программа повторно связать с библиотекой DLL. Кроме того Если несколько программ используют ту же библиотеку DLL, несколько программ будут все преимущества обновления или исправления.Такое поведение чаще наблюдается при использовании библиотек DLL сторонних производителей, регулярно обновляется или фиксированной.
Зависимости библиотек DLL
Когда программа или библиотека DLL использует функцию DLL в другой библиотеке DLL, создается зависимость. Таким образом программа больше не является самодостаточным и программы могут возникнуть проблемы, если зависимость поврежден. Например программа может работать, если произойдет одно из следующих действий:
- Зависимые DLL обновляется до новой версии.
- Исправлена зависимую библиотеку DLL.
- Соответствующий DLL-ФАЙЛ перезаписывается с более ранней версией.
- Соответствующий DLL-ФАЙЛ удаляется с компьютера.
Эти действия называются обычно конфликты DLL-Библиотек. Если не обеспечивается обратная совместимость, программа не может успешно выполняться.
Ниже перечислены изменения, которые были представлены в Microsoft Windows 2000 и более поздних операционных систем Windows, чтобы свести к минимуму проблемы с зависимостями.
- Защита файлов Windows
В защиты файлов Windows операционная система позволяет системные библиотеки DLL из обновляемой или удаляемой несанкционированного агентом. Таким образом когда программа установки пытается удалить или обновить библиотеку DLL, которая определяется как системные библиотеки DLL, Защита файлов Windows будет искать действительной цифровой подписи. - Частные библиотеки DLL
Частные DLL позволяют изолировать программы из изменений, внесенных в общих библиотек DLL закрытых библиотек DLL. использовать сведения о версии или .local пустой файл для обеспечения версию библиотеки DLL, которая используется программой. Чтобы использовать закрытых библиотек DLL, найдите библиотеки DLL в корневой папке программы. Для программ, добавьте сведения о версии в библиотеке DLL. Для старых программ используйте .local пустой файл. Каждый метод сообщает операционной системе для использования закрытых библиотек DLL, расположенные в корневой папке программы.
Средства устранения неполадок DLL
Об устранении неполадок DLL доступны несколько средств. Следующие средства являются некоторые из этих средств.
Dependency Walker
Средства Dependency Walker можно рекурсивный поиск всех зависимых библиотек DLL, используемых программой. При открытии программы в Dependency Walker Dependency Walker выполняет следующие проверки:
- Dependency Walker проверяет наличие отсутствующих библиотек DLL.
- Dependency Walker проверяет файлы программы или библиотеки DLL, которые не являются допустимыми.
- Dependency Walker проверяет, функции импорта и экспорта функции соответствия.
- Dependency Walker проверяет наличие ошибок циклических зависимостей.
- Dependency Walker ищет модули, которые не являются допустимыми Поскольку модули предназначены для другой операционной системы.
С помощью средства Dependency Walker, необходимо документировать все библиотеки DLL, Программа использует. Это может помочь предотвратить и исправить проблемы DLL, которые могут возникнуть в будущее. Dependency Walker находится в следующей директории, когда вы Установка Microsoft Visual Studio 6.0.