Razlika med DLL in LIB

DLL proti LIB

Knjižnica je zbirka virov, ki jih je mogoče uporabiti za razvoj aplikacij. Knjižnica je običajno sestavljena iz podprogramov, funkcij, razredov, vrednosti in vrst. Med postopkom povezovanja (običajno ga izvaja povezovalec) se knjižnice in izvršljive datoteke med seboj sklicujejo. Datoteke knjižnice so razdeljene na statične in dinamične knjižnice, odvisno od časa, v katerem se podprogrami naložijo v ciljno aplikacijo. V skladu s tem so datoteke LIB statično povezane knjižnice, datoteke DLL pa so dinamično povezane knjižnice.

Kaj je DLL?

Dynamic Link Library (bolj znana kot DLL) je skupna implementacija knjižnice, ki jo je razvil Microsoft. Uporablja razširitve .dll, .ocx ali .drv in jih uporabljamo v operacijskih sistemih Microsoft Windows in OS / 2… dll uporabljajo običajne datoteke DLL. In .ocx razširitev uporabljajo knjižnice, ki vsebujejo kontrolnike ActiveX, razširitev .drv pa uporabljajo starejše datoteke gonilnika sistema. Oblika datoteke DLL je enaka datotekam Windows EXE (prenosne izvršljive datoteke v 32-bitnem / 64-bitnem sistemu Windows in nove izvršljive v 16-bitnem sistemu Windows). Torej je lahko vsaka kombinacija kode, podatkov in virov vsebovana v datotekah DLL (tako kot v EXE datotekah). Podatkovne datoteke z obliko datoteke DLL se pravzaprav imenujejo vire DLL. Knjižnice ikon (s pripono .icl) in datoteke s pisavami (s priponami .fon in .fot) so primeri DLL-jev virov.

Komponente, ki se imenujejo odseki, sestavljajo DLL in vsak odsek ima svoje atribute, kot so samo za branje / zapisljiv in izvedljiv / neizvršljiv. Odseki kode so izvršljivi, medtem ko so odseki s podatki neizvršljivi. Odseki s kodami so deljeni, podatkovni oddelki pa zasebni. To pomeni, da bodo vsi procesi, ki uporabljajo DLL, uporabili isto kopijo kode, medtem ko bo vsak postopek imel svojo kopijo podatkov. Primarna dinamična knjižnica za Windows je kernel32.dll, ki vsebuje osnovne funkcije (funkcionalnost datotek in pomnilnika) v sistemu Windows. COM (Component Object Model) je razširitev DLL na OOP (Object Oriented Programming). Običajne datoteke DLL so enostavnejše za uporabo kot datoteke COM.

Kaj je LIB?

Datoteke LIB so statične knjižnice (znane tudi kot statično povezane knjižnice). Datoteke LIB vsebujejo zbirko podprogramov, zunanjih funkcij in spremenljivk. Datoteke LIB se rešijo v času prevajanja (v nasprotju s časom izvajanja). Koda je dejansko kopirana v ciljno aplikacijo. Prevajalnik, povezovalec ali vezivo bo naredil to ločljivost in ustvaril objektno datoteko in izvedljivo datoteko. Ta proces se imenuje statični proces gradnje.

Kakšna je razlika med DLL in LIB?

V času prevajanja lahko pokličete knjižnice LIB, knjižnice DLL pa lahko pokličete le med izvajanjem. Datoteke LIB so bistveno večje od datotek DLL. Zelo pogosta težava datotek DLL je težava različice. To se zgodi, ko spremenite kodo DLL in aplikacija uporablja napačno različico DLL-ja. To ni problem, povezan z datotekami LIB. Z vidika ponovne uporabe so pri pisanju novih različic sistemov ali popolnoma novih aplikacij DLL-ji vedno boljši od LIB-jev.