verschil tussen .dll en .exe?

Ik wil het exacte verschil weten tussen het DLL- en EXE-bestand.


1, Autoriteit 100%

Ik weet niet waarom iedereen deze vraag beantwoordt in de context van .NET. De vraag was een algemene en vermeldde niet .NET overal.

Nou, de belangrijkste verschillen zijn:

exe

  1. Een exe loopt altijd in zijn eigen adresruimte. D.voorbeeld, het is een apart proces.
  2. Het doel van een exe is om een ​​afzonderlijke toepassing van zijn eigen toepassing te lanceren.

dll

  1. A DLL heeft altijd een Host-exe nodig om te rennen. d.w.z. het kan nooit in zijn eigen adresruimte lopen.
  2. Het doel van een DLL is om een ​​verzameling methoden / klassen te hebben die opnieuw kunnen worden gebruikt uit een andere toepassing.
  3. DLL is de implementatie van Microsoft van een gedeelde bibliotheek.

Het bestandsformaat van DLL en EXE is in wezen hetzelfde. Windows erkent het verschil tussen DLL en EXE via PE-header in het bestand. Voor meer informatie over PE-header, kunt u dit artikel bekijken op MSDN


2, Autoriteit 53%

exe:

  1. Het is een uitvoerbaar bestand
  2. Bij het laden van een uitvoerbaar bestand wordt geen export genoemd, maar alleen het invoerpunt van de module.
  3. Wanneer een systeem nieuw uitvoerbaar bestand lanceert, is een nieuw proces gemaakt
  4. De ingangsdiscussie wordt in de context van de hoofddraad van dat proces genoemd.

DLL:

  1. Het is een dynamische linkbibliotheek
  2. Er zijn meerdere geëxporteerde symbolen.
  3. Het systeem laadt een DLL in de context van een bestaand proces.

Voor meer informatie: http: //www.c-sharpcorner.com/Interviews/answer/answers.aspxquestionid=1431&majorcategoryid=1&amp buyminorcategoryid=1
http://wiki.answers.com/q/what_is_the_difference_between_an_exe_and_a_dll

Referentie: http: //www.dotnetspider. COM / FORUM / 34260-WAT-VERSCHILLEND-TUSSEN-DLL-EXE.AASPX


3, Autoriteit 22%

Het verschil is dat een exe een invoerpunt heeft, een “hoofd” -methode die op uitvoering zal uitvoeren.

De code binnen een DLL moet worden genoemd vanuit een andere toepassing.


Antwoord 4, autoriteit 12%

Zowel DLL als EXE zijn Portable Executable(PE)-indelingen

Een Dynamic-link-bibliotheek (DLL)is een bibliotheek en kan daarom niet direct worden uitgevoerd. Als u het probeert uit te voeren, krijgt u een foutmelding over een ontbrekend toegangspunt. Het heeft een ingangspunt (hoofdfunctie) nodig om uitgevoerd te worden, dat ingangspunt kan elke toepassing of exe zijn. DLL-binding vindt plaats tijdens runtime. Daarom heet het de “Dynamic Link”-bibliotheek.

Een Uitvoerbaar bestand (EXE)is een programma dat kan worden uitgevoerd. Het heeft een eigen ingang. Een vlag in de PE-header geeft aan welk type bestand het is (ongeacht de bestandsextensie). De PE-header heeft een veld waar het ingangspunt voor het programma zich bevindt. In DLL’s wordt het niet gebruikt (of in ieder geval niet als toegangspunt).

Er is veel softwarebeschikbaar om header-informatie te controleren. Het enige verschil waardoor beide anders werken, is het bit in de kop zoals weergegeven in het onderstaande diagram.

EXE-bestand heeft slechts één hoofdingang, wat betekent dat het een geïsoleerde applicatie is. Wanneer een systeem exe start, wordt een nieuw proces gemaakt terwijl DLL’s veel ingangspunten hebben, dus wanneer de applicatie het gebruikt, wordt er geen nieuw proces gestart, DLL kan opnieuw worden gebruikt en worden geversied. DLL vermindert opslagruimte omdat verschillende programma’s dezelfde dll kunnen gebruiken.


Antwoord 5, autoriteit 4%

Dll v/s Exe

1)DLL-bestand is een dynamische linkbibliotheek die kan worden gebruikt in exe-bestanden en
andere dll-bestanden.
EXE-bestand is een uitvoerbaar bestand dat in een aparte
proces dat wordt beheerd door OS.

2)DLL’s zijn niet direct uitvoerbaar. Het zijn afzonderlijke bestanden die functies bevatten die door programma’s en andere DLL’s kunnen worden aangeroepen om berekeningen en functies uit te voeren.
Een EXE is een programma dat kan worden uitgevoerd. Bijv.: Windows-programma

3)Herbruikbaarheid
DLL: ze kunnen opnieuw worden gebruikt voor een andere toepassing. Zolang de codeur de namen en parameters van de functies en procedures in het DLL-bestand kent.
EXE: alleen voor een specifiek doel.

4)Een DLL zou hetzelfde proces en dezelfde geheugenruimte delen als de aanroepende applicatie terwijl een
EXE creëert zijn aparte proces- en geheugenruimte.

5)Gebruik
DLL: je wilt dat veel applicaties het gebruiken, maar je wilt ze niet de broncode geven. Je kunt de code voor de knop niet in elk programma kopiëren en plakken, dus je besluit dat je een DL-bibliotheek wilt maken (DLL ).

EXE: wanneer we werken met projectsjablonen zoals Windows Forms Applications, Console Applications, WPF Applications en Windows Services, genereren ze een exe-assembly wanneer ze worden gecompileerd.

6) Overeenkomsten:
Zowel DLL als EXE zijn binaire bestanden met een complexe geneste structuur gedefinieerd door de Portable Executable-indeling, en ze zijn niet bedoeld om door gebruikers te worden bewerkt.


Antwoord 6, autoriteit 3%

Twee dingen: de extensie en de header-vlag die in het bestand zijn opgeslagen.

Beide bestanden zijn PE-bestanden. Beide bevatten exact dezelfde lay-out. Een DLL is een bibliotheek en kan daarom niet worden uitgevoerd. Als u het probeert uit te voeren, krijgt u een foutmelding over een ontbrekend toegangspunt. Een EXE is een programma dat kan worden uitgevoerd. Het heeft een ingang. Een vlag in de PE-header geeft aan welk bestandstype het is (ongeacht de bestandsextensie). De PE-header heeft een veld waar het ingangspunt voor het programma zich bevindt. In DLL’s wordt het niet gebruikt (of in ieder geval niet als toegangspunt).

Een klein verschil is dat in de meeste gevallen DLL’seen exportsectie hebben waar symbolen worden geëxporteerd. EXE’s mogen nooit een exportsectie hebben omdat het geen bibliotheken zijn, maar niets verhindert dat. De Win32-lader maakt het hoe dan ook niet uit.

Voor de rest zijn ze identiek. Kortom, EXE’s zijn uitvoerbare programma’s, terwijl DLL’s bibliotheken zijn die in een proces zijn geladen en een soort van nuttige functionaliteit bevatten, zoals beveiliging, databasetoegang of zoiets.


Antwoord 7, autoriteit 2%

De .exe is het programma. De .dll is een bibliotheek die een .exe (of een andere .dll) kan aanroepen.

Wat sakthivignesh zegt, kan waar zijn in die zin dat de ene .exe een andere kan gebruiken alsof het een bibliotheek is, en dit wordt bijvoorbeeld gedaan met sommige COM-componenten. In dit geval is de “slave” .exe een apart programma (strikt genomen een apart proces – misschien draaiend op een aparte machine), maar een programma dat verzoeken van andere programma’s/componenten/wat dan ook accepteert en afhandelt.

Als je echter gewoon een willekeurige .exe en .dll uit een map in je programmabestanden kiest, is de kans groot dat COM niet relevant is – ze zijn slechts een programma en zijn dynamisch gekoppelde bibliotheken.

Met behulp van Win32 API’s kan een programma een DLL laden en gebruiken met behulp van de LoadLibrary- en GetProcAddress API-functies, IIRC. Er waren vergelijkbare functies in Win16.

COM is in veel opzichten een evolutie van het DLL-idee, oorspronkelijk bedacht als de basis voor OLE2, terwijl .NET de afstammeling is van COM. DLL’s bestaan ​​al sinds Windows 1, IIRC. Ze waren oorspronkelijk een manier om binaire code (met name systeem-API’s) te delen tussen meerdere actieve programma’s om het geheugengebruik te minimaliseren.


Antwoord 8, autoriteit 2%

Een EXE is voor het systeem zichtbaar als een normaal uitvoerbaar bestand van Win32. zijn intrede
punt verwijst naar een kleine lader die de .NET-runtime initialiseert en vertelt
het om de assembly in de EXE te laden en uit te voeren.
Een DLL is voor het systeem zichtbaar als een Win32 DLL, maar hoogstwaarschijnlijk zonder
toegangspunten. De .NET-runtime slaat informatie op over de ingesloten
assembly in zijn eigen header.

dll is een verzameling herbruikbare
functies waar als een .exe een is
uitvoerbaar die deze kan noemen
functies


Antwoord 9

Een exe is een uitvoerbaar programma, terwijl een DLL een bestand is dat dynamisch door programma’s kan worden geladen en uitgevoerd.


Antwoord 10

● .exe en dll zijn de gecompileerde versie van c#-code die ook wordt genoemd als
assemblages.

● .exe is een op zichzelf staand uitvoerbaar bestand, wat betekent dat het direct kan worden uitgevoerd.

● .dll is een herbruikbare component die niet direct kan worden uitgevoerd en vereist:
andere programma’s om het uit te voeren.


Antwoord 11

Voor wie op zoek is naar een beknopt antwoord,

  • Als een assemblageis gecompileerd als een klassenbibliotheek en typen levert die andere assemblages kunnen gebruiken, heeft de ifle-extensie .dll(dynamic link-bibliotheek), en kan niet standalone worden uitgevoerd.

  • Evenzo, als een assemblywordt gecompileerd als een toepassing, heeft deze de bestandsextensie .exe(uitvoerbaar) en kan standalone worden uitgevoerd. Vóór .NET Core 3.0 werden console-apps gecompileerd naar .dll-bestanden en moesten ze worden uitgevoerd met de opdracht dotnet run of een uitvoerbaar hostbestand. – Bron


Antwoord 12

Verschil in DLL en EXE:

1) DLL is een In-Process Component, wat betekent dat het in dezelfde geheugenruimte wordt uitgevoerd als het clientproces. EXE is een Out-Process Component, wat betekent dat het in zijn eigen aparte geheugenruimte draait.

2) De DLL bevat functies en procedures die andere programma’s kunnen gebruiken (bevordert herbruikbaarheid), terwijl EXE niet kan worden gedeeld met andere programma’s.

3) DLL kan niet direct worden uitgevoerd omdat ze zijn ontworpen om te worden geladen en uitgevoerd door andere programma’s. EXE is een programma dat direct wordt uitgevoerd.


Antwoord 13

Het grote exacte verschil tussen DLL en EXE dat DLL geen ingangspunt heeft en EXE wel. Als je bekend bent met c++, kun je zien dat build EXE de main() entry-functie heeft en DLL niet 🙂

Other episodes