Rozdiel medzi DLL a LIB

Rozdiel medzi DLL a LIB
Rozdiel medzi DLL a LIB

Video: Rozdiel medzi DLL a LIB

Video: Rozdiel medzi DLL a LIB
Video: Rozdiel medzi pomocou a záchranou iných - z pohľadu energie, Duše #akaša #tvorímsvojurealitu 2024, Júl
Anonim

DLL vs LIB

Knižnica je zbierka zdrojov, ktoré možno použiť na vývoj aplikácií. Knižnica sa zvyčajne skladá z podprogramov, funkcií, tried, hodnôt a typov. Počas procesu spájania (zvyčajne to robí linker) knižnice a spustiteľné súbory na seba odkazujú. Súbory knižníc sú rozdelené na statické a dynamické knižnice v závislosti od času, v ktorom sú podprogramy načítané do cieľovej aplikácie. V súlade s tým sú súbory LIB staticky prepojené knižnice a súbory DLL sú dynamicky prepojené knižnice.

Čo je knižnica DLL?

Dynamic Link Library (bežnejšie známa ako DLL) je implementácia zdieľanej knižnice vyvinutá spoločnosťou Microsoft. Používa prípony.dll,.ocx alebo.drv a používajú sa v operačných systémoch Microsoft Windows a OS/2..dll používajú bežné súbory DLL. A príponu.ocx používajú knižnice, ktoré obsahujú ovládacie prvky ActiveX a príponu.drv používajú staršie súbory systémových ovládačov. Formát súboru DLL je rovnaký ako pri súboroch Windows EXE (prenosné spustiteľné súbory v 32-bitovom/64-bitovom systéme Windows a New Executable v 16-bitovom systéme Windows). Preto môže byť v súboroch DLL obsiahnutá akákoľvek kombinácia kódu, údajov a zdrojov (rovnako ako v súboroch EXE). Dátové súbory vo formáte súboru DLL sa v skutočnosti nazývajú zdrojové DLL. Knižnice ikon (s príponou.icl) a súbory písiem (s príponami.fon a.fot) sú príkladmi zdrojových knižníc DLL.

Komponenty nazývané sekcie tvoria knižnicu DLL a každá sekcia má svoje vlastné atribúty, ako sú len na čítanie/zapisovateľné a spustiteľné/nespustiteľné. Sekcie kódu sú spustiteľné, zatiaľ čo dátové sekcie nie sú spustiteľné. Sekcie kódu sú zdieľané a sekcie údajov sú súkromné. To znamená, že všetky procesy používajúce knižnicu DLL budú používať rovnakú kópiu kódu, pričom každý proces bude mať svoju vlastnú kópiu údajov. Primárna dynamická knižnica pre Windows je kernel32.dll, ktorá obsahuje základné funkcie (funkcie súvisiace so súbormi a pamäťou) v systéme Windows. COM (Component Object Model) je rozšírenie knižnice DLL na OOP (Object Oriented Programming). Bežné knižnice DLL sa používajú jednoduchšie ako súbory COM.

Čo je LIB?

Súbory LIB sú statické knižnice (známe aj ako staticky prepojené knižnice). Súbory LIB obsahujú kolekciu podprogramov, externých funkcií a premenných. Súbory LIB sa riešia v čase kompilácie (na rozdiel od behu). Kód sa v skutočnosti skopíruje do cieľovej aplikácie. Kompilátor, linker alebo viazač urobí toto rozlíšenie a vytvorí objektový súbor a spustiteľný súbor. Tento proces sa nazýva proces statického zostavovania.

Aký je rozdiel medzi knižnicou DLL a LIB?

LIB knižnice je možné volať počas kompilácie, ale DLL knižnice je možné volať len počas behu. Súbory LIB sú výrazne väčšie ako súbory DLL. Veľmi častým problémom so súbormi DLL je problém s verziou. Stáva sa to, keď sa zmení kód knižnice DLL a aplikácia používa nesprávnu verziu knižnice DLL. Toto nie je problém spojený so súbormi LIB. Čo sa týka opätovnej použiteľnosti, pri písaní nových verzií systémov alebo úplne nových aplikácií sú knižnice DLL vždy lepšie ako knižnice LIB.

Odporúča: