Razlika Između DLL-a I LIB-a

Razlika Između DLL-a I LIB-a
Razlika Između DLL-a I LIB-a

Video: Razlika Između DLL-a I LIB-a

Video: Razlika Između DLL-a I LIB-a
Video: 📼 DLL - Динамически загружаемые библиотеки (Win32 API). 2024, Ožujak
Anonim

DLL vs LIB

Knjižnica je zbirka resursa koja se može koristiti za razvoj aplikacija. Knjižnica se obično sastoji od potprograma, funkcija, klasa, vrijednosti i vrsta. Tijekom postupka povezivanja (obično to radi povezivač), knjižnice i izvršne datoteke upućuju se jedna na drugu. Datoteke knjižnice podijeljene su u statičke i dinamičke knjižnice, ovisno o vremenu u kojem su potprogrami učitani u ciljanu aplikaciju. U skladu s tim, LIB datoteke su statično povezane knjižnice, a DLL datoteke su dinamički povezane knjižnice.

Što je DLL?

Knjižnica dinamičkih veza (poznatija kao DLL) je implementacija zajedničke knjižnice koju je razvio Microsoft. Koristi ekstenzije.dll,.ocx ili.drv i koriste se u operacijskim sustavima Microsoft Windows i OS / 2..dll koriste uobičajene DLL datoteke. A.ocx ekstenziju koriste knjižnice koje sadrže ActiveX kontrole, a.drv ekstenziju koriste naslijeđene datoteke upravljačkih programa sustava. Format DLL datoteke isti je kao Windows EXE datoteke (prijenosne izvršne datoteke na 32-bitnom / 64-bitnom sustavu Windows i nove izvršne datoteke na 16-bitnom sustavu Windows). Stoga bilo koja kombinacija koda, podataka i resursa može biti sadržana u DLL datotekama (baš kao u EXE datotekama). U stvari, podatkovne datoteke s formatom DLL datoteke nazivaju se resursnim DLL-ovima. Biblioteke ikona (s nastavkom.icl) i datoteke fontova (s nastavcima.fon i.fot) primjeri su DLL-ova resursa.

Komponente koje se nazivaju odjeljci čine DLL, a svaki odjeljak ima svoje atribute kao što je samo za čitanje / zapisljivo i izvršno / neizvršljivo. Odjeljci koda su izvršni, dok se odjeljci podataka ne mogu izvršiti. Odjeljci koda dijele se, a odjeljci podataka su privatni. To znači da će svi procesi koji koriste DLL koristiti istu kopiju koda, dok će svaki proces imati svoju kopiju podataka. Primarna dinamička knjižnica za Windows je kernel32.dll, koja sadrži osnovne funkcije (funkcije povezane s datotekama i memorijom) u sustavu Windows. COM (komponentni objektni model) je proširenje DLL-a na OOP (objektno orijentirano programiranje). Uobičajeni DLL-ovi jednostavniji su za upotrebu od COM datoteka.

Što je LIB?

LIB datoteke su statične knjižnice (poznate i kao statički povezane knjižnice). LIB datoteke sadrže kolekciju potprograma, vanjskih funkcija i varijabli. Datoteke LIB rješavaju se tijekom vremena kompajliranja (za razliku od vremena izvođenja). Kôd se zapravo kopira u ciljnu aplikaciju. Prevoditelj, povezivač ili povezivač učinit će ovu rezoluciju i stvoriti objektnu datoteku i izvršnu datoteku. Taj se postupak naziva statički postupak gradnje.

Koja je razlika između DLL i LIB?

LIB knjižnice mogu se pozivati tijekom vremena kompajliranja, ali DLL knjižnice mogu se pozivati samo tijekom vremena izvođenja. LIB datoteke su znatno veće od DLL datoteka. Vrlo čest problem s DLL datotekama je problem s verzijama. To se događa kada se promijeni kôd DLL-a i aplikacija koristi pogrešnu verziju DLL-a. To nije problem povezan s LIB datotekama. Što se tiče ponovne upotrebljivosti, pri pisanju novih verzija sustava ili potpuno novih aplikacija, DLL-ovi su uvijek bolji od LIB-ova.

Preporučeno: