DLL vs LIB
Ang library ay isang koleksyon ng mga mapagkukunan na maaaring magamit upang bumuo ng mga application. Karaniwang binubuo ang library ng mga subroutine, function, klase, value at uri. Sa panahon ng proseso ng pag-link (karaniwang ginagawa ng isang linker), ang mga library at executable ay gumagawa ng reference sa isa't isa. Ang mga file sa library ay nahahati sa static at dynamic na mga library depende sa oras kung kailan na-load ang mga subroutine sa target na application. Alinsunod dito, ang mga LIB file ay mga statically linked na library at ang mga DLL file ay mga dynamic na linked na library.
Ano ang DLL?
Ang Dynamic Link Library (mas kilala bilang DLL) ay isang shared library na pagpapatupad na binuo ng Microsoft. Gumagamit ito ng mga extension na.dll,.ocx o.drv at ginagamit ang mga ito sa mga operating system ng Microsoft Windows at OS/2. Ang.dll ay ginagamit ng mga regular na DLL file. At ang extension ng.ocx ay ginagamit ng mga library na naglalaman ng mga kontrol ng ActiveX at ang extension ng.drv ay ginagamit ng mga legacy na file ng driver ng system. Ang format ng DLL file ay pareho sa mga Windows EXE file (Portable Executable file sa 32-bit/64-bit Windows, at New Executable sa 16-bit Windows). Samakatuwid, ang anumang kumbinasyon ng code, data at mapagkukunan ay maaaring nilalaman sa mga DLL file (tulad ng sa EXE file). Sa katunayan, ang mga file ng data na may format ng DLL file ay tinatawag na mga mapagkukunang DLL. Ang mga library ng icon (na may.icl extension) at mga font file (na may.fon at.fot extension) ay mga halimbawa ng resource DLL.
Ang mga bahagi na tinatawag na mga seksyon ay bumubuo ng isang DLL at ang bawat seksyon ay may sariling mga katangian tulad ng read-only/writable at executable/non executable. Ang mga seksyon ng code ay maipapatupad, habang ang mga seksyon ng data ay hindi maipapatupad. Ang mga seksyon ng code ay nakabahagi at ang mga seksyon ng data ay pribado. Nangangahulugan iyon na ang lahat ng mga proseso na gumagamit ng DLL ay gagamit ng parehong kopya ng code, habang ang bawat proseso ay magkakaroon ng sarili nitong kopya ng data. Ang pangunahing dynamic na library para sa Windows ay kernel32.dll, na naglalaman ng mga base function (file at memory related functionality) sa Windows. Ang COM (Component Object Model) ay ang extension ng DLL sa OOP (Object Oriented Programming). Mas madaling gamitin ang mga conventional DLL kaysa sa COM file.
Ano ang LIB?
Ang LIB file ay mga static na library (kilala rin bilang mga statically linked na library). Ang mga LIB file ay naglalaman ng isang koleksyon ng mga subroutine, panlabas na function at variable. Ang mga file ng LIB ay naresolba sa oras ng pag-compile (kumpara sa run-time). Ang code ay aktwal na kinopya sa target na application. Ang isang compiler, linker o isang binder ay gagawa ng resolution na ito at gagawa ng object file at isang executable file. Ang prosesong ito ay tinatawag na static build process.
Ano ang pagkakaiba ng DLL at LIB?
Maaaring tawagan ang LIB library sa panahon ng compile time, ngunit ang DLL library ay matatawag lang sa panahon ng run-time. Ang mga LIB file ay mas malaki kaysa sa mga DLL file. Ang isang napaka-karaniwang problema sa mga DLL file ay ang bersyon ng problema. Nangyayari ito kapag nabago ang code ng DLL at ang application ay gumagamit ng maling bersyon ng isang DLL. Ito ay hindi isang problema na nauugnay sa mga LIB file. Sa mga tuntunin ng muling paggamit, kapag nagsusulat ng mga bagong bersyon ng mga system o ganap na bagong mga application, ang mga DLL ay palaging mas mahusay kaysa sa mga LIB.