DLL ir LIB
Biblioteka yra išteklių rinkinys, kurį galima naudoti kuriant programas. Biblioteką paprastai sudaro paprogramės, funkcijos, klasės, reikšmės ir tipai. Susiejimo proceso metu (paprastai atliekamas susiejimo) bibliotekos ir vykdomieji failai nurodo vienas kitą. Bibliotekos failai yra suskirstyti į statines ir dinamines bibliotekas, atsižvelgiant į laiką, kada paprogramės įkeliamos į tikslinę programą. Atitinkamai, LIB failai yra statiškai susietos bibliotekos, o DLL failai - dinamiškai susietos bibliotekos.
Kas yra DLL?
„Dynamic Link Library“(plačiau žinoma kaip „DLL“) yra „Microsoft“sukurtas bendros bibliotekos diegimas. Jis naudoja.dll,.ocx arba.drv plėtinius ir yra naudojami „Microsoft Windows“ir OS / 2 operacinėse sistemose..dll naudoja įprasti DLL failai. „. Ocx“plėtinį naudoja bibliotekos, kuriose yra „ActiveX“valdikliai, o.drv plėtinį naudoja senų sistemų tvarkyklių failai. DLL failo formatas yra toks pat kaip „Windows EXE“failų („Portable Executable“failai 32 bitų / 64 bitų „Windows“ir „New Executable“- 16 bitų „Windows“). Todėl bet koks kodo, duomenų ir išteklių derinys gali būti DLL failuose (kaip ir EXE failuose). Iš tikrųjų 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 sekcijomis, sudaro DLL ir kiekvienas skyrius turi savo atributus, pvz., Tik skaityti / rašomas ir vykdomas / nevykdomas. Kodo skiltys yra vykdomos, o duomenų sekcijos nevykdomos. Kodo skyriai yra bendri, o duomenų skyriai yra privatūs. Tai reiškia, kad visi procesai, naudojantys DLL, naudos tą pačią kodo kopiją, o kiekvienas procesas turės savo duomenų kopiją. Pagrindinė „Windows“dinaminė biblioteka yra kernel32.dll, kurioje yra pagrindinės „Windows“funkcijos (susijusios su failais ir atmintimi). COM („Component Object Model“) yra DLL plėtinys į OOP (Object Oriented Programming). Įprastus DLL yra lengviau naudoti nei COM failus.
Kas yra LIB?
LIB failai yra statinės bibliotekos (dar vadinamos statiškai susietomis bibliotekomis). LIB failuose yra paprogramių, išorinių funkcijų ir kintamųjų rinkinys. LIB failai sprendžiami kompiliavimo metu (priešingai nei vykdymo metu). Kodas iš tikrųjų nukopijuojamas į tikslinę programą. Kompiliatorius, susiejėjas ar segtuvas atliks šią rezoliuciją ir sukurs objekto failą ir vykdomąjį failą. Šis procesas vadinamas statiniu kūrimo procesu.
Kuo skiriasi DLL ir LIB?
LIB bibliotekas galima iškviesti kompiliavimo metu, tačiau DLL bibliotekas galima iškviesti tik vykdymo metu. LIB failai yra žymiai didesni nei DLL failai. Labai dažna DLL failų problema yra versijų 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 ar visiškai naujas programas, DLL visada yra geresni nei LIB.