DLL prieš LIB
Biblioteka yra išteklių, kuriuos galima naudoti programoms kurti, rinkinys. Biblioteka paprastai susideda iš paprogramių, funkcijų, klasių, reikšmių ir tipų. Susiejimo proceso metu (paprastai tai atlieka saitas) bibliotekos ir vykdomieji failai daro nuorodas viena į kitą. Bibliotekos failai skirstomi į statines ir dinamines bibliotekas, atsižvelgiant į laiką, kada paprogramės įkeliamos į tikslinę programą. Atitinkamai, LIB failai yra statiškai susietos bibliotekos, o DLL failai yra dinamiškai susietos bibliotekos.
Kas yra DLL?
Dynamic Link Library (plačiau žinoma kaip DLL) yra bendros bibliotekos įdiegimas, kurį sukūrė Microsoft. Jis naudoja.dll,.ocx arba.drv plėtinius ir jie naudojami Microsoft Windows ir OS/2 operacinėse sistemose..dll yra naudojamas įprastiems DLL failams. O.ocx plėtinį naudoja bibliotekos, kuriose yra ActiveX valdiklių, o.drv plėtinį naudoja senieji sistemos tvarkyklės failai. DLL failo formatas yra toks pat kaip „Windows EXE“failų (nešiojamieji vykdomieji failai 32 bitų / 64 bitų „Windows“ir nauji vykdomieji failai 16 bitų „Windows“). Todėl bet koks kodo, duomenų ir išteklių derinys gali būti DLL failuose (kaip ir EXE failuose). Tiesą sakant, duomenų failai su DLL failo formatu vadinami išteklių DLL. Piktogramų bibliotekos (su plėtiniu.icl) ir šriftų failai (su plėtiniais.fon ir.fot) yra išteklių DLL pavyzdžiai.
Komponentai, vadinami skyriais, sudaro DLL ir kiekviena sekcija turi savo atributus, pvz., tik skaitoma / rašoma ir vykdomoji / nevykdomoji. Kodo sekcijos yra vykdomos, o duomenų - nevykdomos. Kodo skiltys yra bendrinamos, o duomenų skiltys yra privačios. Tai reiškia, kad visi procesai, naudojantys DLL, naudos tą pačią kodo kopiją, o kiekvienas procesas turės savo duomenų kopiją. Pirminė dinaminė Windows biblioteka yra kernel32.dll, kurioje yra pagrindinės funkcijos (susijusios su failais ir atmintimi) sistemoje Windows. COM (Component Object Model) yra DLL plėtinys į OOP (Object Oriented Programming). Įprastus DLL naudoti lengviau nei COM failus.
Kas yra LIB?
LIB failai yra statinės bibliotekos (taip pat žinomos kaip statiškai susietos bibliotekos). LIB failuose yra paprogramių, išorinių funkcijų ir kintamųjų rinkinys. LIB failai išsprendžiami kompiliavimo metu (o ne vykdymo metu). Kodas iš tikrųjų nukopijuotas į tikslinę programą. Kompiliatorius, saitas arba segtuvas atliks šią rezoliuciją ir sukurs objekto failą bei vykdomąjį failą. Šis procesas vadinamas statiniu kūrimo procesu.
Kuo skiriasi DLL ir LIB?
LIB bibliotekas galima iškviesti kompiliavimo metu, bet DLL bibliotekas galima iškviesti tik vykdymo metu. LIB failai yra žymiai didesni nei DLL failai. Labai dažna DLL failų problema yra versijų kūrimo problema. Taip atsitinka, kai pakeičiamas DLL kodas ir programa naudoja neteisingą DLL versiją. Tai nėra problema, susijusi su LIB failais. Kalbant apie pakartotinį naudojimą, rašant naujas sistemų versijas arba visiškai naujas programas, DLL visada yra geresni nei LIB.