Что такое dll?

Это может быть очень нубийский вопрос, но в современном мире разработки веб-приложений многим программистам не нужно много разбираться с dll, и поэтому не беспокойтесь, чтобы узнать о своей цели.

Итак, что такое dll?

  • Для чего он используется?
  • Как это работает?
  • Как вы его создаете?
  • В каких ситуациях создается подходящий?

Мне сказали, что dll используются для хранения библиотек функций, но помимо этого я мало знаю. Надеюсь, кто-то здесь может просветить меня, чтобы я мог, наконец, перестать задаваться вопросом, что делают все эти DLL файлы в моем каталоге Windows.

Ответ 1

DLL - это динамическая библиотека ссылок. Это набор кодов и/или данных, которые могут использоваться несколькими приложениями (или другими библиотеками/модулями).

Так, например, в библиотеках доступны общие методы обработки файлов, работы с компонентами графического интерфейса и т.д., поэтому несколько приложений могут использовать те же функции. Это не только уменьшает необходимость в создании одного и того же материала несколько раз, но также гарантирует, что, например, общие диалоги одинаковы между приложениями.

Библиотеки могут быть загружены во время выполнения и, таким образом, распределены между различными параллельными приложениями. Это называется динамическим связыванием.

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

Однако статическая привязка не всегда является опцией. Например. вы не можете статически связывать приложение .NET. Пользователь должен иметь библиотеки .NET для запуска приложения .NET и библиотек (или сборок, которые вызывают в .NET) загружаются во время выполнения.

DLL создаются теми же инструментами, которые используются для создания приложений. Конкретные детали очень сильно зависят от используемых инструментов.

Ответ 2

DLL = динамическая библиотека ссылок

Название на самом деле довольно подробно описывает, что они выполняют.

Библиотека

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

Ссылка

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

Динамический

Библиотека может быть загружена по требованию. Вместо того, чтобы загружать один мамонт одного EXE в память, ОС может загружать только нужные порции. Кроме того, если DLL совместно используется между приложениями, ОС может оптимизировать загрузку библиотеки и делиться ею между приложениями.

Ответ 3

Файлы DLL (динамическая библиотека ссылок) можно охарактеризовать как небольшие "подпрограммы", которые предназначены для того, чтобы помочь большой программе работать хорошо. Они обеспечивают средства связывания различных аппаратных и программных ресурсов (в разных точках его сессий во время выполнения) с основной исполняемой программой, на которой они основаны, на основе "как необходимо". Это избавляет от необходимости загружать все, что нужно сделать с основной исполняемой программой, в ОЗУ компьютера (оперативное запоминающее устройство) при первом запуске программы.

Программные ресурсы, переносимые DLL, включают в себя код для различных программных функций, которые на самом деле не нужны, чтобы поддерживать работу программы: то есть функции, которые нужно вызвать только в определенные моменты времени в течение заданного сеанса работы компьютера и могут фактически даже не нужно называть вообще. Загрузка этих функций (и их количество может быть значительным для данной программы) на ОЗУ компьютера, когда программа сначала запускается, а затем сохранение их на протяжении всего сеанса будет пустой тратой пространства ОЗУ, которое, как полагают, находится в премиум. ​​

Значительное продвижение:

Развитие библиотек DLL было важным шагом вперед в области вычислений, поскольку до того, как они были доступны, все, что нужно сделать с программой (включая функции, которые редко использовались когда-либо), должно было быть загружено в ОЗУ при первой загрузке программы. Это привело к крайне неэффективным вычислениям, причем медленные скорости демонстрировались различными программами. Было очень сложно многозадачно запускать даже пару простых программ из-за сопутствующего напряжения в ОЗУ.

Вопросы:

Библиотеки DLL обычно зависят от версии. Те, которые хорошо работают для, скажем, версии 1 программы (или языка программирования, как может быть), могут плохо работать с версией 2. Общее правило заключается в том, что библиотеки DLL в более старой версии, как правило, не могут работать но с более новой версией, но те, которые имеют более новую версию, могут в целом хорошо работать со старой версией программы или языка программирования.

Ответ 4

Динамически связанная библиотека.

Чтобы дать вам пример, если у вас есть какая-то другая DLL, загруженная в ваше приложение, вы можете использовать из него биты программирования.

Вы можете загрузить DLL, которая генерирует случайные числа, которые всегда начинаются с "5" или что-то в этом роде.

В вашей программе вы можете вызвать CrazyDLL.GenerateRandomNumbersSorta(), и он вернет номер.

Для примера в реальном мире у меня есть DLL, которая объединяет 4 текстовых поля (вы должны использовать их для ввода IP-адресов), и он автоматически принимает числа меньше 256 и обрабатывает нажатие клавиши backspace для перехода в предыдущее текстовое поле.

Я создал DLL с этим кодом, и теперь все, что мне нужно сделать, это перетащить больше этих коллекций текстовых ящиков IP-адресов, не повторяя их снова и снова.

В той же DLL также есть функция для преобразования IP-адресов в шестнадцатеричные строки и другой полезный код.

Ответ 5

От Библиотека MSDN:

Библиотека динамической компоновки (DLL) - это модуль, который содержит функции и данные, которые могут использоваться другим модулем (приложение или DLL).

Ответ 6

DLL = Динамическая Загрузить Библиотека ссылок. Как вам сказали, это в основном набор функций, классов С++ и/или глобальных переменных. Вы можете загружать DLL статически (т.е. ОС загружает его автоматически при запуске вашей программы) или динамически (ваша программа явно загружает его), после чего функции и прочее внутри DLL доступны для вашей программы.

Создание одного похоже на создание EXE, за исключением того, что не требуется функция main(). Есть директивы компоновщика, чтобы сообщить компоновщику создать DLL, а не EXE.

Основная причина, по которой вы хотите сделать это, - это инкапсулировать некоторый код в одном месте и использовать его из нескольких exe, а не связывать код с каждым из них.

Несколько историческая причина заключается в том, что ваш exe может быть меньше, поскольку часть кода физически находится в другом файле. Это означает, что объем пространства, занимаемого в памяти вашим exe, может быть меньше. В современных системах это меньше проблема, чем раньше, хотя это все еще может быть проблемой для Windows Mobile.

Ответ 7

Библиотека динамической компоновки (также написанная нефашированная) или DLL - это реализация концепции общей библиотеки Microsoft в операционных системах Microsoft Windows и OS/2.  Эти библиотеки обычно имеют расширение DLL файлов, OCX (для библиотек, содержащих элементы управления ActiveX) или DRV (для устаревших системных драйверов). Форматы файлов для DLL такие же, как для файлов Windows EXE, то есть Portable Executable (PE) для 32-разрядных и 64-разрядных Windows и New Executable (NE) для 16-разрядной Windows. Как и в случае с EXE, библиотеки DLL могут содержать код, данные и ресурсы в любой комбинации.

Ответ 8

Страница Wikipedia в DLL содержит почти всю необходимую информацию.

Библиотека динамической компоновки (также написанная без дефиса) или DLL, является Внедрение концепции разделяемой библиотеки в Microsoft Операционных систем Microsoft Windows и OS/2. Обычно эти библиотеки имеют расширение DLL файлов, OCX (для библиотек, содержащих ActiveX элементы управления) или DRV (для устаревших системных драйверов). Форматы файлов для DLL файлы такие же, как для Windows EXE файлов, то есть Portable Executable (PE) для 32-битной и 64-битной Windows и New Executable (NE) для 16-битной Windows. Как и в случае с EXE, библиотеки DLL могут содержать код, данные и ресурсов, в любой комбинации. В более широком смысле этот термин файл данных с таким же файловым форматом можно назвать библиотекой ресурсов.