Razlika između DLL i LIB

DLL vs LIB

Knjižnica je skup resursa koji se mogu koristiti za razvoj aplikacija. Knjižnica se obično sastoji od podprograma, funkcija, klasa, vrijednosti i vrsta. Tijekom procesa povezivanja (obično radi veznik), knjižnice i izvršne datoteke pozivaju se jedna na drugu. Datoteke knjižnice podijeljene su u statičke i dinamičke knjižnice, ovisno o vremenu u kojem se podprogrami učitavaju u ciljanu aplikaciju. U skladu s tim, LIB datoteke su statički povezane knjižnice, a DLL datoteke dinamički su povezane knjižnice.

Što je DLL?

Biblioteka dinamičkih veza (poznatija kao DLL) zajednička je implementacija biblioteke koju je razvio Microsoft. Koristi .dll, .ocx ili .drv proširenja i koriste se u operacijskim sustavima Microsoft Windows i OS / 2 ... dll koriste redovne DLL datoteke. I .ocx proširenje koriste knjižnice koje sadrže ActiveX kontrole, a .drv proširenje koriste naslijeđene datoteke upravljačkog programa. Format datoteke DLL jednak je datotekama datoteka Windows EXE (Prijenosne izvršne datoteke u 32-bitnom / 64-bitnom sustavu Windows i Nove izvršne datoteke u 16-bitnom sustavu Windows). Stoga, svaka kombinacija koda, podataka i resursa može se nalaziti u DLL datotekama (baš kao i u EXE datotekama). Kao činjenica, datoteke s podacima u obliku DLL datoteke nazivaju se DLL-ovi resursa. Biblioteke ikona (s .icl ekstenzijom) i datoteke fonta (s .fon i .fot ekstenzijama) primjeri su DLL-ova resursa.

Komponente koje nazivamo odjeljcima čine DLL i svaki odjeljak ima svoje atribute poput samo za čitanje / zapisljiv i izvršni / ne izvršljivi. Odjeljci koda su izvršljivi, dok su odjeljci s podacima neizvršivi. Odjeljci kodova dijele se, a podatkovni su dijelovi privatni. To znači da će svi procesi koji koriste DLL koristiti istu kopiju koda, dok će svaki postupak imati svoju kopiju podataka. Primarna dinamička biblioteka za Windows je kernel32.dll koja sadrži osnovne funkcije (funkcionalnost vezana uz datoteke i memoriju) u sustavu Windows. COM (Component Object Model) je proširenje DLL-a na OOP (Object Oriented Programming). Konvencionalne DLL datoteke jednostavnije su za upotrebu od COM datoteka.

Što je LIB?

LIB datoteke su statične biblioteke (poznate i kao statički povezane knjižnice). LIB datoteke sadrže zbirku potprograma, vanjskih funkcija i varijabli. LIB datoteke se rješavaju u vrijeme sastavljanja (za razliku od vremena izvođenja). Kôd se zapravo kopira u ciljni program. Kompajler, veznik ili vezivo napravit će ovu rezoluciju i stvoriti objektnu datoteku i izvršnu datoteku. Taj se proces naziva statički proces sastavljanja.

Koja je razlika između DLL-a i LIB-a?

LIB knjižnice se mogu pozivati ​​za vrijeme sastavljanja, ali DLL biblioteke mogu se pozivati ​​samo tijekom izvođenja. LIB datoteke značajno su veće od DLL datoteka. Vrlo čest problem s DLL datotekama je problem s inačicom. To se događa kada se promijeni kôd DLL-a i aplikacija koristi pogrešnu verziju DLL-a. Ovo nije problem povezan s LIB datotekama. U smislu ponovne upotrebe, kod pisanja novih verzija sustava ili potpuno novih aplikacija, DLL-ovi su uvijek bolji od LIB-ova.