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.