Разлика между 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 файловият формат е същият като EXE файловете на Windows (преносими изпълними файлове на 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 (Object Oriented Programming). Конвенционалните DLL файлове са по-лесни за използване от COM файловете.

Какво е LIB?

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

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

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

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