DLL va LIB
Kutubxona bu ilovalarni ishlab chiqish uchun ishlatilishi mumkin boʻlgan resurslar toʻplamidir. Kutubxona odatda quyi dasturlar, funksiyalar, sinflar, qiymatlar va turlardan iborat. Bog'lanish jarayonida (odatda bog'lovchi tomonidan amalga oshiriladi) kutubxonalar va bajariladigan fayllar bir-biriga havola qiladi. Maqsadli dasturga quyi dasturlar yuklangan vaqtga qarab kutubxona fayllari statik va dinamik kutubxonalarga bo'linadi. Shunga ko'ra, LIB fayllari statik bog'langan kutubxonalar va DLL fayllari dinamik ravishda bog'langan kutubxonalardir.
DLL nima?
Dynamic Link Library (koʻproq DLL nomi bilan tanilgan) Microsoft tomonidan ishlab chiqilgan umumiy kutubxona ilovasi. U.dll,.ocx yoki.drv kengaytmalaridan foydalanadi va ular Microsoft Windows va OS/2 operatsion tizimlarida qo'llaniladi..dll oddiy DLL fayllari tomonidan ishlatiladi. Va.ocx kengaytmasi ActiveX boshqaruvlarini o'z ichiga olgan kutubxonalar tomonidan ishlatiladi va.drv kengaytmasi eski tizim drayverlari fayllari tomonidan qo'llaniladi. DLL fayl formati Windows EXE fayllari bilan bir xil (32-bit/64-bit Windows-da Portativ bajariladigan fayllar va 16-bitli Windows-da yangi bajariladigan fayllar). Shuning uchun kod, ma'lumotlar va resurslarning har qanday kombinatsiyasi DLL fayllarida bo'lishi mumkin (xuddi EXE fayllaridagi kabi). Aslida, DLL fayl formatiga ega ma'lumotlar fayllari DLL resurslari deb ataladi. Belgilar kutubxonalari (.icl kengaytmali) va shrift fayllari (.fon va.fot kengaytmalari bilan) manba DLL-lariga misoldir.
Bo'limlar deb ataladigan komponentlar DLL-ni tashkil qiladi va har bir bo'lim faqat o'qish/yozish va bajariladigan/bajarish mumkin bo'lmagan kabi o'z atributlariga ega. Kod bo'limlari bajarilishi mumkin, ma'lumotlar bo'limlari esa bajarilmaydi. Kod bo'limlari umumiy va ma'lumotlar bo'limlari shaxsiydir. Bu shuni anglatadiki, DLL-dan foydalanadigan barcha jarayonlar kodning bir xil nusxasidan foydalanadi, har bir jarayon esa ma'lumotlarning o'ziga xos nusxasiga ega bo'ladi. Windows uchun asosiy dinamik kutubxona kernel32.dll bo'lib, u Windows tizimidagi asosiy funktsiyalarni (fayl va xotira bilan bog'liq funksiyalar) o'z ichiga oladi. COM (Component Object Model) - bu DLL-ning OOP (ob'ektga yo'n altirilgan dasturlash) ga kengaytmasi. An'anaviy DLL-lardan foydalanish COM fayllarga qaraganda osonroq.
LIB nima?
LIB fayllari statik kutubxonalardir (statik bogʻlangan kutubxonalar deb ham ataladi). LIB fayllari quyi dasturlar, tashqi funksiyalar va o'zgaruvchilar to'plamini o'z ichiga oladi. LIB fayllari kompilyatsiya vaqtida hal qilinadi (ishlash vaqtidan farqli o'laroq). Kod aslida maqsadli dasturga ko'chiriladi. Kompilyator, bog'lovchi yoki bog'lovchi bu rezolyutsiyani bajaradi va ob'ekt fayli va bajariladigan faylni ishlab chiqaradi. Bu jarayon statik qurish jarayoni deb ataladi.
DLL va LIB oʻrtasidagi farq nima?
LIB kutubxonalarini kompilyatsiya vaqtida chaqirish mumkin, lekin DLL kutubxonalarini faqat ish vaqtida chaqirish mumkin. LIB fayllari DLL fayllaridan sezilarli darajada kattaroqdir. DLL fayllari bilan bog'liq juda keng tarqalgan muammo bu versiya muammosi. Bu DLL kodi o'zgartirilganda va dastur noto'g'ri DLL versiyasidan foydalanganda sodir bo'ladi. Bu LIB fayllari bilan bog'liq muammo emas. Qayta foydalanish imkoniyati nuqtai nazaridan, tizimlarning yangi versiyalarini yoki mutlaqo yangi ilovalarni yozishda DLL-lar har doim LIB-lardan yaxshiroq.