Starpība starp DLL un LIB

DLL vs LIB

Bibliotēka ir resursu kolekcija, ko var izmantot lietojumprogrammu izstrādei. Bibliotēku parasti veido apakšprogrammas, funkcijas, klases, vērtības un veidi. Saistīšanas procesa laikā (parasti to veic saistītājs) bibliotēkas un izpildāmie faili atsaucas viens uz otru. Bibliotēkas faili tiek sadalīti statiskās un dinamiskās bibliotēkās atkarībā no laika, kurā apakšprogrammas tiek ielādētas mērķa lietojumprogrammā. Attiecīgi LIB faili ir statiski saistītas bibliotēkas un DLL faili ir dinamiski saistītas bibliotēkas.

Kas ir DLL?

Dinamisko saišu bibliotēka (plašāk pazīstama kā DLL) ir kopīga bibliotēkas ieviešana, ko izstrādājusi Microsoft. Tas izmanto paplašinājumus .dll, .ocx vai .drv, un tos izmanto Microsoft Windows un OS / 2 operētājsistēmās. Dll izmanto parastie DLL faili. Un .ocx paplašinājumu izmanto bibliotēkas, kurās ir ActiveX vadīklas, un .drv paplašinājumu izmanto mantotās sistēmas draivera faili. DLL faila formāts ir tāds pats kā Windows EXE failiem (pārnēsājamie izpildāmie faili 32 bitu / 64 bitu Windows un jauns izpildāms faili 16 bitu Windows). Tāpēc jebkuru faila, datu un resursu kombināciju var ietvert DLL failos (tāpat kā EXE failos). Faktiski datu failus ar DLL faila formātu sauc par resursu DLL. Resursu DLL piemēri ir ikonu bibliotēkas (ar paplašinājumu .icl) un fontu faili (ar paplašinājumiem .fon un .fot).

Komponenti, kurus sauc par sekcijām, veido DLL, un katrai sadaļai ir savi atribūti, piemēram, tikai lasāmi / ierakstāmi un izpildāmi / neizpildāmi. Koda sadaļas ir izpildāmas, savukārt datu sadaļas nav izpildāmas. Kodu sadaļas tiek koplietotas, un datu sadaļas ir privātas. Tas nozīmē, ka visos procesos, izmantojot DLL, tiks izmantota viena un tā pati koda kopija, savukārt katram procesam būs sava datu kopija. Primārā dinamiskā bibliotēka operētājsistēmai Windows ir kernel32.dll, kurā ir Windows pamatfunkcijas (ar failiem un atmiņu saistītā funkcionalitāte). COM (Component Object Model) ir DLL paplašinājums līdz OOP (Object Oriented Programming). Parastos DLL ir vieglāk izmantot nekā COM failus.

Kas ir LIB?

LIB faili ir statiskas bibliotēkas (pazīstamas arī kā statiski saistītas bibliotēkas). LIB faili satur apakšprogrammu, ārējo funkciju un mainīgo lielumu kolekciju. LIB faili tiek atrisināti kompilācijas laikā (pretstatā izpildes laikam). Kods faktiski tiek kopēts mērķa lietojumprogrammā. Kompilators, saistītājs vai saistviela veiks šo izšķirtspēju un izveidos objekta failu un izpildāmu failu. Šo procesu sauc par statisko veidošanas procesu.

Kāda ir atšķirība starp DLL un LIB?

LIB bibliotēkas var izsaukt sastādīšanas laikā, bet DLL bibliotēkas var izsaukt tikai izpildes laikā. LIB faili ir ievērojami lielāki nekā DLL faili. Ļoti izplatīta problēma ar DLL failiem ir versiju veidošanas problēma. Tas notiek, kad tiek mainīts DLL kods un lietojumprogramma izmanto nepareizu DLL versiju. Tā nav problēma, kas saistīta ar LIB failiem. Atkārtotas izmantojamības ziņā, rakstot jaunas sistēmu versijas vai pilnīgi jaunas lietojumprogrammas, DLL vienmēr ir labāki par LIB.