Come visualizzare le funzioni DLL?


Risposte:


73

Per il codice nativo è probabilmente meglio usare Dependency Walker . È anche possibile utilizzare l' utilità della riga di comando di dumpbin fornita con Visual Studio.


1
Con le nuove edizioni di VS, prova DumpBin come strumento esterno .
Laurie Stearn,

C'è un articolo di Wikipedia su Dependency Walker. Apparentemente il programma è diventato obsoleto e non funziona con alcune nuove funzionalità di Windows, ma è disponibile un sostituto: github.com/lucasg/Dependencies
user1324109

50

Utilizza il visualizzatore gratuito di esportazione DLL , è molto facile da usare.


8
@sumit puoi essere più specifico? questo strumento funziona per me nel corso degli anni.
Ken D,

6
In realtà lo strumento funziona bene, chiaro e semplice, proprio quello di cui avevo bisogno.
informatik01

5
È un ottimo strumento per generare un elenco di metodi / funzioni, ma non mostra i parametri dei metodi (né i loro tipi).
bvdb,

1
Molto bello avere qualcosa di piccolo e compatto, e di solito non è un prodotto gonfio come i prodotti MS ufficiali.
ワ イ き ん ぐ

38

Puoi provare l' Object Browser in Visual Studio.

Seleziona Modifica set di componenti personalizzati . Da lì, puoi scegliere tra una varietà di librerie .NET, COM o di progetto o semplicemente importare dll esterne tramite Sfoglia.


16
Visual Studio dice: "Il componente selezionato non può essere sfogliati" quando si utilizza Sfoglia e selezionando DLL :( - msdn.microsoft.com/query/...
xdg

5
il browser degli oggetti è stato spostato in View. E sì, non funziona (perché dovrebbe essere microsoft)
phil294,

1
Più un fornitore che un problema di SM. Probablay non c'è typelib nella dll. Vedi: stackoverflow.com/a/13903040/1614903
Holger Böhnke

@ HolgerBöhnke nessuna typelib neanche in userdll32
Kimmax

2
@Kimmax Sì, ma user32.dll è una DLL Windows nativa e non un server COM. Solo i server COM (ad esempio DLL COM, controlli ActiveX, * .ocx ...) possibilmente hanno tipelibs, se sono stati compilati, in primo luogo. Per le DLL native (= oggetto non COM) alcuni degli altri strumenti citati qui (dumpbin et al.) Potrebbero funzionare. Cioè, se la DLL esporta le sue funzioni per nome e non solo per ordinale.
Holger Böhnke,

27

Usa la dumpbinriga di comando .

  • dumpbin /IMPORTS <path-to-file> dovrebbe fornire la funzione importata in quella DLL.
  • dumpbin /EXPORTS <path-to-file> dovrebbe fornire le funzioni che esporta.


8

Per le DLL .NET è possibile utilizzare ildasm


Poiché ildasm è un prodotto Microsoft ed è installato sul PC per impostazione predefinita se hai installato Visual Studio. Credo che sia l'opzione migliore. Ha anche un'interfaccia utente quindi non è necessario utilizzare la riga di comando. Grazie
Mehrdad Babaki il

Può essere trovato: C: \ Programmi (x86) \ Microsoft SDKs \ Windows \ <VERSION> \ bin
f4d0

6

Senza dirci da quale lingua provenga questa dll / assembly, possiamo solo indovinare.

Che ne dici di .NET Reflector


2
Quindi questo dovrebbe essere il tuo ragazzo.
Adriaan Stander,

1
Il riflettore .net era gratuito, ma ora è un prodotto commerciale. Per "JustDecompile" di .net dll è un'alternativa gratuita.
bvdb,

il decompilatore ti dice solo quali funzioni ci sono. possiamo vedere anche la loro implementazione, come?
vipin8169,

2

Se una DLL è scritta in uno dei linguaggi .NET e se si desidera visualizzare solo quali funzioni, nel progetto è presente un riferimento a questa DLL.

Quindi fai doppio clic sulla DLL nella cartella dei riferimenti e vedrai quali funzioni ha nella finestra OBJECT EXPLORER

Se si desidera visualizzare il codice sorgente di quel file DLL, è possibile utilizzare un'applicazione di decompilazione come .NET reflector. spero che questo ti aiuti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.