Система динамических библиотек в Windows работает на основе динамической компоновки. 1 Загрузочный код нескольких функций объединяется в отдельные файлы, которые загружаются в оперативную память в единственном экземпляре. 1
Некоторые особенности работы системы:
- Программы, работающие параллельно, вызывают функции из библиотек, а не из файлов программ. 1 В загрузочном файле программы располагают только специфические для неё функции, а общие для нескольких программ выносятся в библиотеки. 1
- Библиотеки загружаются в память только при необходимости, например, когда какая-нибудь программа захочет вызвать функцию, код которой расположен в библиотеке. 1
- Одна и та же функция библиотеки может отображаться на разные адреса в различные адресные пространства приложений. 1 Это же относится к глобальным и статическим переменным библиотеки. 1
- Для каждой библиотеки система ведёт счётчик использования. 1 Содержимое этого счётчика увеличивается при очередной загрузке библиотеки в память и уменьшается при освобождении библиотеки. 1
Некоторые преимущества использования динамических библиотек:
- Обновления и исправления ошибок. 4 Если нужно обновить код, который вынесен в динамическую библиотеку, то достаточно обновить только библиотеку, и все программы, которые её используют, получат новую версию. 4
- Экономия памяти. 4 Если одну и ту же библиотеку использует несколько приложений, в оперативной памяти может храниться только один её экземпляр, доступный этим приложениям. 4
- Общие данные. 4 Библиотеки могут содержать такие ресурсы, как строки, значки и растровые изображения, которые доступны любым программам. 4