Verskil tussen samestelling en DLL

Verskil tussen samestelling en DLL
Verskil tussen samestelling en DLL

Video: Verskil tussen samestelling en DLL

Video: Verskil tussen samestelling en DLL
Video: Maglev Trains and Why They Matter 2024, November
Anonim

Assembly vs DLL

'n Biblioteek is 'n versameling hulpbronne wat gebruik kan word om toepassings te ontwikkel. 'n Biblioteek bestaan gewoonlik uit subroetines, funksies, klasse, waardes en tipes. Tydens die koppelingsproses (gewoonlik deur 'n skakelaar gedoen), verwys biblioteke en uitvoerbare programme na mekaar. DLL-lêers is die biblioteeklêers wat dinamies gekoppel is. DLL is ontwikkel deur Microsoft. Maar as gevolg van 'n paar probleme teenwoordig met DLL-lêers, het Microsoft vorendag gekom met Assembly-lêerformaat (met die. NET-raamwerk). Versamelinglêers is fisies baie soortgelyk aan DLL'e, maar hulle het baie interne verskille.

Wat is DLL?

Dynamiese skakelbiblioteek (meer algemeen bekend as DLL) is 'n gedeelde biblioteekimplementering wat deur Microsoft ontwikkel is. Dit gebruik die.dll-,.ocx- of.drv-uitbreidings en hulle word in Microsoft Windows en OS/2-bedryfstelsels gebruik..dll word deur die gewone DLL-lêers gebruik. En.ocx-uitbreiding word gebruik deur die biblioteke wat ActiveX-kontroles bevat en.drv-uitbreiding word deur verouderde stelselbestuurderlêers gebruik. Die DLL-lêerformaat is dieselfde as die Windows EXE-lêers (draagbare uitvoerbare lêers op 32-bis/64-bis Windows, en New Executable op 16-bis Windows). Daarom kan enige kombinasie van kode, data en hulpbronne in DLL-lêers vervat word (net soos in EXE-lêers). Trouens, datalêers met die DLL-lêerformaat word hulpbron-DLL's genoem. Ikoonbiblioteke (met.icl-uitbreiding) en lettertipelêers (met.fon- en.fot-uitbreidings) is voorbeelde van hulpbron-DLL'e.

Komponente genaamd afdelings maak 'n DLL uit en elke afdeling het sy eie eienskappe soos leesalleen/skryfbaar en uitvoerbaar/nie-uitvoerbaar. Kode-afdelings is uitvoerbaar, terwyl data-afdelings nie uitvoerbaar is nie. Die kode-afdelings word gedeel en data-afdelings is privaat. Dit beteken dat alle prosesse wat die DLL gebruik, dieselfde kopie van die kode sal gebruik, terwyl elke proses sy eie kopie van die data sal hê. Die primêre dinamiese biblioteek vir Windows is kernel32.dll, wat die basisfunksies (lêer- en geheueverwante funksionaliteit) op Windows bevat. COM (Component Object Model) is die uitbreiding van DLL na OOP (Object Oriented Programming). Konvensionele DLL's is makliker om te gebruik as COM-lêers.

Wat is 'n Vergadering?

Assembly-lêers is deur Microsoft bekendgestel om verskeie probleme wat met DLL-lêers teenwoordig is, op te los. Samestellinglêers is met die Microsoft. NET-raamwerk bekendgestel. 'n Uitvoerbare logiese eenheid van funksionaliteit word 'n Vergadering genoem. Samestellings is uitvoerbaar onder. NET CLR (Common Language Runtime). Fisies bestaan samestellings as EXE- of DLL-lêers. Maar hulle verskil baie van Microsoft Win32 DLL's intern.'n Samestellinglêer bestaan uit 'n manifes, metadata, MISL (Microsoft Intermediate Language-kode) en ander hulpbronne. 'n Vergadering is selfbeskrywend. Die manifes bevat die inligting soos naam, weergawe, kultuur, sterk naam, lêerlys, tipes en afhanklikhede. MISL-kode word deur CLR uitgevoer (dit kan nie direk uitgevoer word nie).

Wat is die verskil tussen Assembly en DLL?

DLL is 'n dinamies gekoppelde biblioteek. Alhoewel samestellings fisies gelyk is aan DLL's, verskil hulle intern baie. Dit is nie moontlik om konsekwentheid tussen 'n stel DLL'e te handhaaf nie, maar die CLR kan konsekwentheid tussen 'n stel samestellings handhaaf, want samestellings is selfbeskrywend (dit bevat die lys van afhanklikhede intern). Anders as vir DLL's, word weergawe-inligting vir samestellings afgedwing (deur die CLR). Sy-aan-sy-ontplooiing (verskillende toepassings wat verskillende weergawes gebruik) is moontlik met samestellings.

Aanbeveel: