DLL, файл, содержащий код для часто используемых программных функций на персональных компьютерах (ПК), работающих под управлением операционной системы Windows корпорации Microsoft.
Связывание — это часть процесса создания компьютерной программы, в ходе которого программисты объединяют свои новые программные коды с уже существующими библиотеками кода (часто используемыми специальными функциями, такими как печать документа). Статическая компоновка — процесс, традиционно используемый во многих операционных системах, — собирает все вместе в исполняемую программу. Динамическое связывание, с другой стороны, сохраняет библиотеки кода в DLL-файлах. Доступ к функциям в этих файлах различные выполняющиеся программы получают только при необходимости. В результате динамической компоновки программы занимают меньше памяти и дискового пространства и легче обновляются. Без динамического связывания внесение изменений в часть библиотеки кода — например, в диалоговое окно для сохранения файла — означало бы внесение изменений в каждую статически связанную программу, которая ее использует. При динамической линковке менять нужно только DLL.
Несмотря на эти преимущества, динамическое связывание имеет некоторые компромиссы. Выигрыш в эффективности иногда компенсируется потерями в стабильности программы. В прошлом вновь установленная программа могла иногда заменять существующую DLL, что иногда приводило к сбоям или странному поведению существующих программ — такую ситуацию программисты называют «DLL-адом». Чтобы избежать этих проблем, Windows использует защищенные библиотеки DLL и защиту файлов Windows (WFP). Защищенные DLL обновляются только Microsoft, и если одна из них заменяется другим источником, Windows возвращает DLL к исходной версии. Официальное обновление все равно может внести ошибки, хотя это маловероятно.