DLL vs LIB
Knižnica je kolekcia 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 prepájania (zvyčajne ich vykonáva linker) sa knižnice a spustiteľné súbory navzájom odkazujú. Súbory knižnice 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 to DLL?
Knižnica Dynamic Link (všeobecnejš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 sa používa v bežných súboroch 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 ovládačov systému. Formát súboru DLL je rovnaký ako súbory systému Windows EXE (prenosné spustiteľné súbory v 32-bitových / 64-bitových systémoch Windows a New Executable v 16-bitových systémoch Windows). Akákoľvek kombinácia kódu, údajov a prostriedkov môže byť preto obsiahnutá v súboroch DLL (rovnako ako v súboroch EXE). V skutočnosti sa dátové súbory vo formáte súborov DLL nazývajú zdrojové DLL. Knižnice ikon (s príponou.icl) a súbory fontov (s príponami.fon a.fot) sú príkladmi zdrojových DLL.
Komponenty nazývané sekcie tvoria DLL a každá sekcia má svoje vlastné atribúty ako iba na čítanie / zapisovateľné a spustiteľné / nevykonateľné. Sekcie kódu sú spustiteľné, zatiaľ čo sekcie dát nie sú spustiteľné. Sekcie kódu sú zdieľané a sekcie dát súkromné. To znamená, že všetky procesy využívajúce DLL budú používať rovnakú kópiu kódu, zatiaľ čo každý proces bude mať svoju vlastnú kópiu údajov. Primárnou dynamickou knižnicou pre Windows je kernel32.dll, ktorá obsahuje základné funkcie (funkcie spojené so súbormi a pamäťou) v systéme Windows. COM (komponentový objektový model) je rozšírenie DLL do OOP (objektovo orientované programovanie). Konvenčné DLL sú ľahšie použiteľné ako súbory COM.
Čo je to LIB?
Súbory LIB sú statické knižnice (tiež známe ako staticky prepojené knižnice). Súbory LIB obsahujú zbierku podprogramov, externých funkcií a premenných. Súbory LIB sú vyriešené v čase kompilácie (na rozdiel od run-time). Kód sa v skutočnosti skopíruje do cieľovej aplikácie. Kompilátor, linker alebo väzba urobí toto rozlíšenie a vytvorí objektový súbor a spustiteľný súbor. Tento proces sa nazýva statický proces vytvárania.
Aký je rozdiel medzi DLL a LIB?
Knižnice LIB je možné volať počas kompilácie, ale knižnice DLL sa dajú volať iba za behu programu. Súbory LIB sú podstatne väčšie ako súbory DLL. Veľmi častým problémom súborov DLL je problém so spravovaním verzií. To sa stane, keď sa zmení kód DLL a aplikácia použije nesprávnu verziu DLL. Toto nie je problém spojený so súbormi LIB. Pokiaľ ide o opätovnú použiteľnosť, 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.