2009-01-24 13 views

Répondre

28

Il existe des utilitaires qui feront cela pour vous.

Dans le passé, je l'ai utilisé l'outil MS (de depends.exe) qui est venu avec (je pense) VB .:
https://msdn.microsoft.com/en-us/library/8kche8ah.aspx

et il y a cela aussi:
http://dependencywalker.com/

et probablement d'autres aussi.

+4

Le fichier "depends.exe" installé avec Visual Studio/VB/... et le fichier "depends.exe" que vous pouvez télécharger depuis http://dependencywalker.com/ sont exactement le même outil (seulement des versions différentes) . ;) –

8

Dependency Walker peut vous aider à déterminer quel fichier .dll sera chargé.

+0

Beau programme GUI. 'Dependency Walker' essaie de trouver les DLL et leurs dépendances hiérarchiques. – SuB

39

dumpbin est un outil qui vient avec VC++.

Pour voir ce que les DLL d'un programme importera:

  • Ouvrez Visual Studio
  • Menu Outils d'article | Commande Visual Studio invite
  • cd dans le dossier contenant l'exécutable
  • dumpbin/charge whatever.exe
Dump of file whatever.exe 

File Type: EXECUTABLE IMAGE 

    Image has the following dependencies: 

    AIOUSB.DLL 
    sqlite3.dll 
    wxmsw293u_core_vc_custom.dll 
    wxbase293u_vc_custom.dll 
    KERNEL32.dll 
    ole32.dll 
    OLEAUT32.dll 
    MSVCP90.dll 
    MSVCR90.dll 

Pour voir quelles fonctions (et DLL), il importera, utilisez

C:\> dumpbin /imports whatever.exe 
+2

Je crois qu'il devrait être: dumpbin/dépendants quel que soit –

+1

dépendants ne vous montre que les DLL./ imports vous montre les fonctions * et * DLL. –

+0

Ceci est la meilleure réponse. Malheureusement, cet outil ne montre que les DLL chargées directement pour les DLL '.exe' non DLL dont le fichier exécutable dépend indirectement. – SuB

1

Il existe un outil pratique appelé NDepend qui vous donnera toutes les dépendances DLL.

+0

_'NDepend' est un outil d'analyse statique pour .NET géré code'_. Donc, cela ne fonctionne que pour les applications .Net. – SuB

10

Il suffit d'aller à l'invite de commande et tapez tasklist /m, vous verrez la liste des fichiers dll utilisés par un programme spécifique.

+0

Ouais, cela fait ce que vous dites, cependant, si un exécutable démarre plusieurs processus, vous ne saurez jamais à partir de la ligne de commande quel processus a été démarré par les exécutables, donc vous ne connaîtrez pas toutes les dll dépendantes de l'exécutable. – Fazi

2

Solution pour Microsoft .Net:

foreach (AssemblyName a in Assembly.ReflectionOnlyLoadFrom("SAMPLE.EXE").GetReferencedAssemblies()) 
{ 
    MessageBox.Show(a.Name); 
} 
11

Ouvrez l'invite de commande et tapez commande ci-dessous

tasklist/m/fi "imagename éq netbeans.exe"

Type de lieu netbeans.exe quel que soit le nom de votre fichier exe.

+0

bonne astuce, bien que ne fonctionne que pour l'exécution de processess. –

+0

je l'ai utilisé et il ne me donne pas la liste complète des DLL que son utilisation, il ya un tas de dlls crystalreports que mon exe utilise, mais je ne vois pas mentionné dans la liste imprimée par le biais de cette commande. Des idées? – user734028

Questions connexes