Разница между DLL и LIB

Разница между DLL и LIB
Разница между DLL и LIB

Видео: Разница между DLL и LIB

Видео: Разница между DLL и LIB
Видео: Создание статической и динамической библиотек Visual Studio C++ 2024, Ноябрь
Anonim

DLL против LIB

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

Что такое DLL?

Библиотека динамической компоновки (более известная как DLL) - это реализация совместно используемой библиотеки, разработанная Microsoft. Он использует расширения.dll,.ocx или.drv и используется в операционных системах Microsoft Windows и OS/2..dll используется обычными файлами DLL. И расширение.ocx используется библиотеками, которые содержат элементы управления ActiveX, а расширение.drv используется устаревшими файлами системных драйверов. Формат файла DLL такой же, как у файлов Windows EXE (переносимые исполняемые файлы в 32-разрядной/64-разрядной версии Windows и новые исполняемые файлы в 16-разрядной версии Windows). Следовательно, любая комбинация кода, данных и ресурсов может содержаться в файлах DLL (точно так же, как и в файлах EXE). На самом деле файлы данных в формате DLL называются ресурсными DLL. Библиотеки значков (с расширением.icl) и файлы шрифтов (с расширениями.fon и.fot) являются примерами ресурсных библиотек DLL.

Компоненты, называемые разделами, составляют DLL, и каждый раздел имеет свои собственные атрибуты, такие как «только чтение/запись» и «исполняемый/неисполняемый». Разделы кода являются исполняемыми, а разделы данных неисполняемыми. Разделы кода являются общими, а разделы данных - частными. Это означает, что все процессы, использующие DLL, будут использовать одну и ту же копию кода, а каждый процесс будет иметь собственную копию данных. Основной динамической библиотекой для Windows является kernel32.dll, которая содержит базовые функции (функции, связанные с файлами и памятью) в Windows. COM (компонентная объектная модель) является расширением DLL для ООП (объектно-ориентированного программирования). Обычные DLL проще в использовании, чем COM-файлы.

Что такое LIB?

Файлы LIB являются статическими библиотеками (также известными как статически связанные библиотеки). Файлы LIB содержат набор подпрограмм, внешних функций и переменных. Файлы LIB разрешаются во время компиляции (в отличие от времени выполнения). Код фактически копируется в целевое приложение. Компилятор, компоновщик или компоновщик сделают это разрешение и создадут объектный файл и исполняемый файл. Этот процесс называется процессом статической сборки.

В чем разница между DLL и LIB?

Библиотеки LIB можно вызывать во время компиляции, но библиотеки DLL можно вызывать только во время выполнения. Файлы LIB значительно больше, чем файлы DLL. Очень распространенной проблемой с файлами DLL является проблема с версиями. Это происходит, когда код DLL изменен и приложение использует неправильную версию DLL. Это не проблема, связанная с файлами LIB. С точки зрения возможности повторного использования при написании новых версий систем или совершенно новых приложений DLL всегда лучше, чем LIB.

Рекомендуемые: