7

Что такое DLL? Что это делает на нашем компьютере? Почему нам нужно это зарегистрировать? Является ли регистрация DLL общим процессом одной команды? Это установлено / зарегистрировано, пока мы устанавливаем программное обеспечение?

5 ответов5

7

DLL - это динамически подключаемые библиотеки:

Динамически подключаемая библиотека, или DLL, представляет собой реализацию Microsoft концепции общей библиотеки в операционных системах Microsoft Windows и OS/2. Эти библиотеки обычно имеют расширение DLL, OCX (для библиотек, содержащих элементы управления ActiveX) или DRV (для устаревших системных драйверов).

Смотрите библиотеку динамических ссылок в Википедии.

4

DLL означает "Библиотека динамических ссылок". Как видно из названия, это набор функций (libray), который динамически связан с вашей программой во время выполнения (по сравнению со статическим связыванием). Вообще dll содержит только функцию. "Современные" .NET dll содержат обычные .NET объекты.

Dlls могут быть зарегистрированы. Этот процесс (например, regsvr32 N:\ame.dll) делает эту DLL известной для операционной системы. В качестве альтернативы, DLL может быть размещена в том же каталоге, что и исполняемый файл или в каталоге в пути. Второй альтернативой является загрузка DLL через Windows API (LoadLibrary ()).

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

3

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

Dll's могут прийти из многих мест; многие из них составляют Windows как таковые, другие входят в состав различного программного обеспечения, которое вы устанавливаете. Microsoft Office, например, регистрирует библиотеки DLL, которые предоставляют COM-интерфейсы, что позволяет другим приложениям включать функции из приложений Office.

2

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

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

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

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

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

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

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

0

Давайте не будем забывать rundll32.exe. Эта утилита Windows позволяет вам вызывать функцию, экспортированную в DLL. http://support.microsoft.com/kb/164787

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .