Разлика между DLL и LIB

Разлика между DLL и LIB
Разлика между DLL и LIB

Видео: Разлика между DLL и LIB

Видео: Разлика между DLL и LIB
Видео: Как установить библиотеку OpenGL в Visual Studio // Установка библиотек в Visual Studio. 2024, Декември
Anonim

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 и всяка секция има свои собствени атрибути като само за четене / записваеми и изпълними / неизпълними. Кодовите секции са изпълними, докато секциите с данни не се изпълняват. Кодовите секции са споделени, а секциите с данни са частни. Това означава, че всички процеси, използващи DLL, ще използват едно и също копие на кода, докато всеки процес ще има свое собствено копие на данните. Основната динамична библиотека за Windows е kernel32.dll, която съдържа основните функции (свързана с файлове и памет) функционалност на Windows. COM (Component Object Model) е разширението на DLL до OOP (обектно-ориентирано програмиране). Конвенционалните DLL файлове са по-лесни за използване от COM файловете.

Какво е LIB?

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

Каква е разликата между DLL и LIB?

LIB библиотеките могат да бъдат извикани по време на компилация, но DLL библиотеките могат да бъдат извикани само по време на изпълнение. LIB файловете са значително по-големи от DLL файловете. Много често срещан проблем с DLL файловете е проблемът с версирането. Това се случва, когато кодът на DLL е променен и приложението използва грешна версия на DLL. Това не е проблем, свързан с LIB файлове. По отношение на повторната употреба, когато се пишат нови версии на системи или изцяло нови приложения, DLL файловете винаги са по-добри от LIB.

Препоръчано: