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

DLL против LIB

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

Что такое DLL?

Dynamic Link Library (более известная как 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, будут использовать одну и ту же копию кода, в то время как каждый процесс будет иметь свою собственную копию данных. Основной динамической библиотекой для Windows является kernel32.dll, которая содержит базовые функции (функции, связанные с файлами и памятью) в Windows. COM (объектная модель компонентов) является расширением DLL до ООП (объектно-ориентированного программирования). Обычные библиотеки DLL проще в использовании, чем файлы COM.

Что такое LIB?

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

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

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