Поделиться через


Преимущества использования DLLs

Динамическая компоновка имеет следующие преимущества:

  • Экономия памяти и уменьшение объема выгрузки. Многие процессы используют одновременно одну библиотеку DLL — при этом в памяти хранится только один ее экземпляр для всех процессов. Для каждого приложения, построенного с помощью статически компонуемой библиотеки, Windows, напротив, должна загрузить копию кода библиотеки в память.

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

  • Обновление библиотек DLL проще и удобнее. При изменении функций в библиотеке DLL не требуется перекомпиляция или перекомпоновка приложений, использующих эти библиотеки, если аргументы функций и возвращаемые значения остались прежними. Напротив, при использовании статически компонуемого объектного кода требуется перекомпоновка приложения в случае изменения функций.

  • Обеспечивается послепродажная поддержка. Например, в библиотеку DLL для драйвера монитора можно внести изменения для поддержки монитора другого типа, которого еще не существовало на момент поставки приложения.

  • Поддержка многоязычных программ. Программы, написанные на разных языках программирования, могут вызывать ту же самую функцию библиотеки DLL, если в этих программах соблюдаются единые соглашения по вызовам функций. Между программой и функцией библиотеки DLL должна быть обеспечена совместимость по следующим направлениям: определить последовательность передачи аргументов функции в стек, а также определить, какая часть отвечает за очистку стека — функция или приложение, а также какие аргументы передаются в регистры.

  • Механизм расширения классов библиотеки MFC. На основе существующих классов MFC можно создавать производные классы и помещать их в библиотеку DLL расширения MFC для использования в приложениях MFC.

  • Упрощение создания международных версий приложений. Создание международных версий приложений намного упрощается, если строковые ресурсы поместить в библиотеку DLL. Можно разместить строковые ресурсы каждой языковой версии вашего приложения в отдельную библиотеку ресурсов, чтобы разные языковые версии загружали соответствующие ресурсы.

Потенциальный недостаток использования библиотек DLL состоит в том, что приложение не является самодостаточным: его выполнение определяется наличием того или иного библиотечного модуля DLL.

Выберите действие.

Дополнительные сведения

См. также

Основные понятия

DLL в Visual C++