Wie werden DLL-Funktionen angezeigt?


129

Ich habe eine DLL-Datei. Wie kann ich die Funktionen in dieser DLL anzeigen?


2
Dieser Link Server gut [Inhalt-einer-DLL anzeigen
PSR

Antworten:


73

Für nativen Code ist es wahrscheinlich am besten, Dependency Walker zu verwenden . Es ist auch möglich , das mit Visual Studio gelieferte Befehlszeilenprogramm dumpbin zu verwenden .


1
Versuchen Sie bei neueren VS-Editionen DumpBin als externes Tool .
Laurie Stearn

Es gibt einen Wikipedia-Artikel über Dependency Walker. Anscheinend ist das Programm veraltet und funktioniert nicht mit einigen neueren Windows-Funktionen, aber es gibt einen Ersatz: github.com/lucasg/Dependencies
user1324109

50

Verwenden Sie den kostenlosen DLL Export Viewer , er ist sehr einfach zu bedienen.


8
@sumit kannst du genauer sein? Dieses Tool funktioniert für mich im Laufe der Jahre.
Ken D

6
Eigentlich funktioniert das Tool schön, schlicht und einfach, genau das, was ich brauchte.
informatik01

5
Es ist ein großartiges Werkzeug, um eine Liste von Methoden / Funktionen zu erstellen, aber es zeigt nicht die Parameter der Methoden (noch deren Typen) an.
bvdb

1
Sehr gut, etwas zu haben, das klein und kompakt ist, und nicht irgendein aufgeblähtes Produkt, wie es die offiziellen MS-Produkte normalerweise sind.
ぐ イ き ん

38

Sie können den Objektbrowser in Visual Studio ausprobieren .

Wählen Sie Benutzerdefinierten Komponentensatz bearbeiten . Von dort aus können Sie aus einer Vielzahl von .NET-, COM- oder Projektbibliotheken auswählen oder einfach externe DLLs über Durchsuchen importieren.


16
Visual Studio sagt "Die ausgewählte Komponente kann nicht durchsucht werden", wenn Sie Durchsuchen und DLL auswählen :( - msdn.microsoft.com/query/…
Xdg

5
Objektbrowser ist umgezogen View. Und ja, es funktioniert nicht (warum sollte es, es ist Microsoft)
Phil294

1
Eher ein Anbieter als ein MS-Problem. Wahrscheinlich gibt es keine Typelib in der DLL. Siehe: stackoverflow.com/a/13903040/1614903
Holger Böhnke

@ HolgerBöhnke auch keine typelib in userdll32
Kimmax

2
@Kimmax Ja, aber user32.dll ist eine native Windows-DLL und kein COM-Server. Nur COM-Server (z. B. COM-DLLs, ActiveX-Steuerelemente, * .ocx ...) verfügen möglicherweise überhaupt über Typelibs, wenn sie kompiliert wurden. Für native (= Nicht-COM-Objekt-) DLLs funktionieren möglicherweise einige der anderen hier genannten Tools (dumpbin et al.). Das heißt, wenn die DLL ihre Funktionen nach Namen und nicht nur nach Ordnungszahlen exportiert.
Holger Böhnke

27

Verwenden Sie die dumpbinBefehlszeile .

  • dumpbin /IMPORTS <path-to-file> sollte die in diese DLL importierte Funktion bereitstellen.
  • dumpbin /EXPORTS <path-to-file> sollte die Funktionen bereitstellen, die es exportiert.


8

Für .NET-DLLs können Sie ildasm verwenden


Da ildasm ein Microsoft-Produkt ist und standardmäßig auf dem PC installiert ist, wenn Sie Visual Studio installiert haben. Ich glaube, es ist die beste Option. Es hat auch eine Benutzeroberfläche, sodass Sie die Befehlszeile nicht verwenden müssen. Danke
Mehrdad Babaki

Es kann gefunden werden: C: \ Programme (x86) \ Microsoft SDKs \ Windows \ <VERSION> \ bin
f4d0

6

Ohne uns zu sagen, aus welcher Sprache diese DLL / Assembly stammt, können wir nur raten.

Wie wäre es mit .NET Reflector?


2
Dann sollte das dein Typ sein.
Adriaan Stander

1
Früher war der .net-Reflektor kostenlos, jetzt ist er ein kommerzielles Produkt. Für .net DLLs ist "JustDecompile" eine kostenlose Alternative.
Bvdb

sagt Ihnen der Dekompiler nur, welche Funktionen vorhanden sind. können wir ihre Umsetzung auch irgendwie sehen?
Vipin8169

2

Wenn eine DLL in einer der .NET-Sprachen geschrieben ist und Sie nur anzeigen möchten, welche Funktionen vorhanden sind, enthält das Projekt einen Verweis auf diese DLL.

Doppelklicken Sie dann auf die DLL im Referenzordner und sehen Sie, welche Funktionen sie hat, im Fenster OBJECT EXPLORER

Wenn Sie den Quellcode dieser DLL-Datei anzeigen möchten, können Sie eine Dekompileranwendung wie .NET Reflector verwenden. hoffe das hilft dir

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.