Skirtumas tarp DLL ir LIB

DLL vs LIB

Biblioteka yra išteklių, kuriuos galima naudoti kuriant programas, rinkinys. Biblioteka paprastai sudaroma iš paprogramių, funkcijų, klasių, reikšmių ir tipų. Susiejimo proceso metu (dažniausiai tai daro siejamasis ryšys) bibliotekos ir vykdomieji failai daro nuorodą vienas į kitą. Bibliotekos failai yra padalijami į statines ir dinamines bibliotekas, atsižvelgiant į tai, 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?

Dinaminių nuorodų biblioteka (plačiau žinoma kaip DLL) yra bendro naudojimo biblioteka, kurią sukūrė „Microsoft“. Jis naudoja .dll, .ocx arba .drv plėtinius ir yra naudojamas „Microsoft Windows“ ir OS / 2 operacinėse sistemose. Dll yra naudojami įprasti DLL failai. O .ocx plėtinį naudoja bibliotekos, kuriose yra „ActiveX“ valdikliai, o .drv plėtinį naudoja senosios sistemos tvarkyklės failai. DLL failo formatas yra toks pat kaip „Windows EXE“ failų (32 bitų / 64 bitų „Windows“ nešiojamieji vykdomieji failai ir 16 bitų „Windows“ naujieji vykdomieji failai). Todėl bet koks kodo, duomenų ir išteklių derinys gali būti pateiktas DLL failuose (kaip ir EXE failuose). Faktiškai duomenų failai su DLL failo formatu yra vadinami išteklių DLL. Piktogramų bibliotekos (su .icl plėtiniu) ir šriftų failai (su .fon ir .fot plėtiniais) yra išteklių DLL pavyzdžiai.

Komponentai, vadinami sekcijomis, sudaro DLL ir kiekvienas skyrius turi savo atributus, tokius kaip tik skaitomas / rašomas ir vykdomasis / nevykdomas. Kodo sekcijos yra vykdomosios, o duomenų sekcijos - nevykdomos. Kodo skyriai yra bendrinami, 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ą. Pirminė „Windows“ dinaminė biblioteka yra kernel32.dll, kurioje yra pagrindinės „Windows“ funkcijos (failo ir atminties funkcijos). COM (Component Object Model) yra DLL išplėtimas iki OOP (Object Oriented Programming). Įprastinius DLL yra lengviau naudoti nei COM failus.

Kas yra LIB?

LIB failai yra statinės bibliotekos (dar žinomos kaip statiškai susietos bibliotekos). LIB failuose yra paprogramių, išorinių funkcijų ir kintamųjų rinkinys. LIB failai išsprendžiami kompiliavimo metu (priešingai nei paleidimo metu). Kodas iš tikrųjų nukopijuojamas į tikslinę programą. Kompiliatorius, nuoroda 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 bibliotekos gali būti iškviečiamos kompiliavimo metu, tačiau DLL bibliotekos gali būti iškviečiamos tik vykdymo metu. LIB failai yra žymiai didesni nei DLL failai. Labai dažna DLL failų problema yra versijų kūrimo problema. Tai atsitinka, kai keičiamas DLL kodas ir programa naudoja klaidingą DLL versiją. Tai nėra problema, susijusi su LIB failais. Pakartotinio naudojimo prasme, rašant naujas sistemų versijas ar visiškai naujas programas, DLL visada yra geresni nei LIB.