Verschil tussen Assembly en DLL

Anonim

Assembly vs DLL

Een bibliotheek is een verzameling middelen die gebruikt kunnen worden om applicaties te ontwikkelen. Een bibliotheek bestaat meestal uit subroutines, functies, klassen, waarden en typen. Tijdens het koppelproces (meestal gedaan door een linker) verwijzen bibliotheken en executables naar elkaar. DLL-bestanden zijn de bibliotheekbestanden die dynamisch zijn gekoppeld. DLL is ontwikkeld door Microsoft. Maar door sommige problemen die zich voordoen bij DLL-bestanden, kwam Microsoft samen met het bestandsformaat van de assemblage (met het.NET-kader). Assemblagebestanden zijn fysiek gelijk aan DLL's, maar ze hebben veel interne verschillen.

Wat is DLL?

Dynamische Link Library (meer algemeen bekend als DLL) is een gedeelde bibliotheek implementatie ontwikkeld door Microsoft. Het maakt gebruik van de. dll,. ocx of. drv extensies en ze worden gebruikt in Microsoft Windows en OS / 2 besturingssystemen … dll wordt gebruikt door de reguliere DLL-bestanden. En. OCX-extensie wordt gebruikt door de bibliotheken die ActiveX-besturingselementen bevatten en. drv extensie wordt gebruikt door elders systeem driver bestanden. Het DLL-bestandsformaat is hetzelfde als de Windows EXE-bestanden (Portable Executable bestanden op 32-bits / 64-bits Windows en New Executable op 16bit Windows). Daarom kan elke combinatie van code, gegevens en bronnen worden opgenomen in DLL-bestanden (net als in EXE-bestanden). In feite worden gegevensbestanden met het DLL-bestandsindeling bron DLL's genoemd. Pictogrambibliotheken (met. Icl-extensie) en lettertypebestanden (met.fon en.fot extensions) zijn voorbeelden van resource DLLs.

Componenten die secties genoemd worden, vormen een DLL en elke sectie heeft zijn eigen attributen, zoals alleen-lezen / schrijfbaar en uitvoerbaar / niet-uitvoerbaar. Code secties zijn uitvoerbaar, terwijl gegevens secties niet uitvoerbaar zijn. De code secties worden gedeeld en gegevens secties zijn privé. Dat betekent dat alle processen die de DLL gebruiken, dezelfde kopie van de code gebruiken, terwijl elk proces een eigen kopie van de gegevens heeft. De primaire dynamische bibliotheek voor Windows is kernel32. dll, die de basisfuncties bevat (bestand en geheugen gerelateerde functionaliteit) op Windows. COM (Component Object Model) is de uitbreiding van DLL naar OOP (Object Oriented Programming). Conventionele DLL's zijn makkelijker te gebruiken dan COM-bestanden.

Wat is een Vergadering?

Montagebestanden werden door Microsoft geïntroduceerd om verschillende problemen op te lossen die aanwezig zijn in DLL-bestanden. Assemblage bestanden werden geïntroduceerd bij de Microsoft. NET-kader. Een uitvoerbare logische eenheid van functionaliteit heet een Assembly. Assemblies zijn uitvoerbaar onder. NET CLR (Common Language Runtime). Fysisch bestaan ​​er samenkomsten als EXE- of DLL-bestanden. Maar ze zijn heel anders dan Microsoft Win32 DLLs, intern. Een assemblage bestand bestaat uit een manifest, metadata, MISL (Microsoft Intermediate Language code) en andere bronnen.Een montage is zelf beschrijvend. Het manifest bevat de informatie zoals naam, versie, cultuur, sterke naam, bestandenlijst, typen en afhankelijkheden. MISL code wordt uitgevoerd via CLR (het kan niet direct worden uitgevoerd).

Wat is het verschil tussen Assembly en DLL?

DLL is een dynamisch gekoppelde bibliotheek. Hoewel samenstellingen fysiek gelijk zijn aan DLL's, zijn ze heel anders intern. Het is niet mogelijk consistentie tussen een set DLL's te behouden, maar de CLR kan consistentie behouden tussen een reeks samenstellingen, omdat de samenstellingen zelf beschrijven (ze bevatten de lijst van afhankelijkheden intern). In tegenstelling tot DLL's, wordt versieinformatie gehandhaafd voor samenstellingen (door de CLR). Side-by-side implementatie (verschillende applicaties met verschillende versies) is mogelijk met assemblies.