Это может быть очень простой вопрос, но в современном мире разработки веб-приложений многим программистам не нужно много заниматься dll, и поэтому они не утруждают себя изучением их предназначения.
Так что же такое dll?
- Для чего это используется?
- Как это работает?
- Как его создать?
- В каких ситуациях создание уместно?
Мне сказали, что dll используются для хранения библиотек функций, но кроме этого я мало что знаю. Надеюсь, кто-то здесь может просветить меня, чтобы я, наконец, перестал интересоваться, что делают все эти файлы .dll в моем каталоге Windows.
Ответы:
DLL - это библиотека динамической компоновки. Это набор кода и / или данных, которые могут использоваться несколькими приложениями (или другими библиотеками / модулями).
Так, например, общие методы обработки файлов, работы с компонентами графического интерфейса и т. Д. Доступны в библиотеках, поэтому несколько приложений могут использовать одни и те же функции. Это не только снижает потребность в многократной сборке одного и того же материала, но также гарантирует, что, например, общие диалоги между приложениями одинаковы.
Библиотеки могут загружаться во время выполнения и, таким образом, совместно использоваться различными параллельными приложениями. Это называется динамической компоновкой.
В некоторых случаях библиотека может быть включена в само приложение. Это называется статическим связыванием. Статическое связывание упрощает развертывание за счет гибкости, поскольку каждое приложение загружает одну и ту же копию библиотеки DLL.
Однако статическая компоновка не всегда возможна. Например, вы не можете статически связать приложение .NET. У пользователя должны быть библиотеки .NET, чтобы запускать приложение .NET, и библиотеки (или сборки, как они называются в .NET) загружаются во время выполнения.
Библиотеки DLL создаются теми же инструментами, которые используются для создания приложений. Конкретные детали во многом зависят от используемых инструментов.
источник
DLL = Библиотека динамической компоновки
Название на самом деле довольно точно описывает то, что они делают.
Библиотека
Позволяет изолировать код для конкретной проблемной области в одном месте. Затем поделитесь этим между несколькими приложениями. Библиотеку можно в любой момент заменить другой, чтобы исправить ошибки или добавить функциональность.
Ссылка на сайт
Вы можете «связать» библиотеку с приложением, чтобы логика библиотеки не компилировалась непосредственно в приложение.
Динамический
Библиотека может быть загружена по запросу. Вместо того, чтобы загружать в память гигантский единственный EXE-файл, ОС может загружать только необходимые части. Кроме того, если DLL используется совместно между приложениями, ОС может оптимизировать загрузку библиотеки и делиться ею между приложениями.
источник
Файлы DLL (библиотеки динамической компоновки) можно описать как небольшие «подпрограммы», которые предназначены для помощи в работе более крупной программы. Они обеспечивают средства связывания различных аппаратных и программных ресурсов (в различных точках сеансов выполнения) с основной исполняемой программой, на которой они основаны, на основе «по мере необходимости». Это устраняет необходимость загружать все, что связано с основной исполняемой программой, в оперативную память компьютера (оперативную память) при первом запуске программы.
Программные ресурсы, переносимые библиотеками DLL, включают в себя код для различных программных функций, которые на самом деле не нужны для поддержания работы программы: то есть функции, которые нужно вызывать только в определенное время в течение данного вычислительного сеанса и которые на самом деле могут даже не потребоваться. называться вообще. Загрузка этих функций (а их может быть значительное количество для данной программы) в ОЗУ компьютера при первом запуске программы и последующее сохранение их там на протяжении всего сеанса будет пустой тратой пространства ОЗУ, что считается допустимым. премия.
Главное достижение:
Соображения:
источник
Динамически связанная библиотека.
Приведу пример. Если в ваше приложение загружена чужая DLL, вы можете использовать ее для программирования.
Вы можете загрузить DLL, которая генерирует случайные числа, которые всегда начинаются с «5» или чего-то подобного.
В вашей программе вы можете вызвать CrazyDLL.GenerateRandomNumbersSorta (), и он вернет номер.
В качестве реального примера у меня есть DLL, которая объединяет 4 текстовых поля (вы бы использовали их для ввода IP-адресов), и она автоматически принимает только числа меньше 256 и обрабатывает нажатие клавиши Backspace для перехода к предыдущему текстовому полю.
Я создал DLL с этим кодом, и теперь все, что мне нужно сделать, это перетащить еще больше этих коллекций текстовых полей IP-адресов, не дублируя весь этот код снова и снова.
Эта же DLL также имеет функцию преобразования IP-адресов в шестнадцатеричные строки и другой полезный код.
источник
Из библиотеки MSDN :
Библиотека динамической компоновки (DLL) - это модуль, содержащий функции и данные, которые могут использоваться другим модулем (приложением или DLL).
источник
DLL = Библиотека динамической
загрузкиссылок. Как вам сказали, это в основном набор функций, классов C ++ и / или глобальных переменных. Вы можете загружать DLL статически (т.е. ОС загружает ее автоматически при запуске вашей программы) или динамически (ваша программа явно загружает ее), после чего функции и прочее внутри DLL становятся доступными для вашей программы.Его создание аналогично созданию EXE, за исключением того, что в нем не должно быть
main()
функции. Существуют директивы компоновщика, указывающие компоновщику создавать DLL, а не EXE.Основная причина, по которой вы хотите это сделать, - это инкапсулировать некоторый код в одном месте и использовать его из нескольких exe-файлов, а не связывать код в каждом из них.
Несколько историческая причина заключается в том, что ваш exe может быть меньше, поскольку часть кода физически находится в другом файле. Это означает, что объем памяти, занимаемый вашим исполняемым файлом, может быть меньше. В современных системах это меньшая проблема, чем раньше, хотя в Windows Mobile она все еще может быть проблемой.
источник