DLL против LIB
Библиотека - это набор ресурсов, которые можно использовать для разработки приложений. Библиотека обычно состоит из подпрограмм, функций, классов, значений и типов. В процессе компоновки (обычно выполняется компоновщиком) библиотеки и исполняемые файлы ссылаются друг на друга. Файлы библиотеки делятся на статические и динамические библиотеки в зависимости от времени, когда подпрограммы загружаются в целевое приложение. Соответственно, файлы LIB представляют собой статически связанные библиотеки, а файлы DLL - это динамически подключаемые библиотеки.
Что такое DLL?
Библиотека динамической компоновки (более известная как DLL) - это реализация разделяемой библиотеки, разработанная Microsoft. Он использует расширения.dll,.ocx или.drv, и они используются в операционных системах Microsoft Windows и OS / 2..dll используется обычными файлами DLL. Расширение.ocx используется библиотеками, которые содержат элементы управления ActiveX, а расширение.drv используется устаревшими файлами системных драйверов. Формат файла DLL такой же, как у EXE-файлов Windows (переносимые исполняемые файлы в 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.