Pagkakaiba sa pagitan ng Assembly at DLL

Pagkakaiba sa pagitan ng Assembly at DLL
Pagkakaiba sa pagitan ng Assembly at DLL

Video: Pagkakaiba sa pagitan ng Assembly at DLL

Video: Pagkakaiba sa pagitan ng Assembly at DLL
Video: I Just Fixed Traffic In Transport Fever 2 (No Mods) - This Game Will Never Be The Same. 2024, Hulyo
Anonim

Assembly vs DLL

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 DLL file ay ang mga file ng library na dynamic na naka-link. Ang DLL ay binuo ng Microsoft. Ngunit dahil sa ilang mga problema na naroroon sa mga DLL file, ang Microsoft ay nakabuo ng Assembly file format (na may. NET framework). Ang mga assembly file ay halos kapareho sa mga DLL sa pisikal, ngunit mayroon silang maraming panloob na pagkakaiba.

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 16bit 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 Assembly?

Ang Assembly file ay ipinakilala ng Microsoft upang malutas ang ilang problemang mayroon sa mga DLL file. Ang mga assembly file ay ipinakilala sa Microsoft. NET framework. Ang isang executable logical unit ng functionality ay tinatawag na Assembly. Ang mga pagpupulong ay maipapatupad sa ilalim ng. NET CLR (Common Language Runtime). Sa pisikal, umiiral ang mga pagtitipon bilang mga EXE o DLL na file. Ngunit, ibang-iba sila sa mga Microsoft Win32 DLL, sa loob. Ang isang assembly file ay binubuo ng isang manifest, metadata, MISL (Microsoft Intermediate Language code) at iba pang mapagkukunan. Ang pagpupulong ay naglalarawan sa sarili. Ang manifest ay naglalaman ng impormasyon tulad ng pangalan, bersyon, kultura, malakas na pangalan, listahan ng mga file, mga uri at dependency. Ang MISL code ay isinasagawa sa pamamagitan ng CLR (hindi ito direktang maipatupad).

Ano ang Pagkakaiba ng Assembly at DLL?

Ang DLL ay isang dynamic na naka-link na library. Bagaman, ang mga pagtitipon ay pisikal na katumbas ng mga DLL, ang mga ito ay ibang-iba sa loob. Hindi posible na mapanatili ang pagkakapare-pareho sa pagitan ng isang hanay ng mga DLL, ngunit maaaring mapanatili ng CLR ang pagkakapare-pareho sa pagitan ng isang hanay ng mga asembliya, dahil ang mga asembliya ay naglalarawan sa sarili (naglalaman sila ng listahan ng mga dependency sa loob). Hindi tulad ng para sa mga DLL, ang impormasyon sa pag-bersyon ay ipinapatupad para sa mga pagtitipon (ng CLR). Ang side-by-side deployment (iba't ibang application gamit ang iba't ibang bersyon) ay posible sa mga assemblies.

Inirerekumendang: