Comment puis-je trouver les dll un exécutable charge?
si j'ai un exécutable Windows, Comment puis-je savoir quels dlls il chargera?
je parle juste de ceux qui seront chargés statiquement, pas ceux qu'il pourrait charger dynamiquement avec quelque chose comme LoadLibrary.
8 réponses
il y a des utilitaires qui feront cela pour vous.
dans le passé, j'ai utilisé L'outil MS (dépend.exe) qui est venu avec (je pense) VB.:
https://msdn.microsoft.com/en-us/library/8kche8ah.aspx
et il y a ça aussi:
http://dependencywalker.com /
et probablement d'autres aussi.
dumpbin est un outil qui vient avec VC++.
pour voir ce Qu'un programme DLLs importera:
- Ouvrez Visual Studio
- dans le Menu Outils | invite de Commande Visual Studio
- cd vers un dossier contenant l'exécutable
- dumpbin / dependants 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
à voir quelles sont les fonctions (et les Dll) pour importer, utiliser
C:\> dumpbin /imports whatever.exe
ouvrez l'invite de commande et tapez ensuite
tasklist /m /fi " imagename eq netbeans.exe "
Type à la place netbeans.exe quel que soit le nom de votre fichier exe nom.
allez simplement à l'invite de commande et tapez tasklist /m
, vous verrez la liste des fichiers dll utilisés par le programme spécifique.
Dependency Walker peut vous aider à déterminer lequel .dll sera chargé.
Solution pour Microsoft. NET:
foreach (AssemblyName a in Assembly.ReflectionOnlyLoadFrom("SAMPLE.EXE").GetReferencedAssemblies())
{
MessageBox.Show(a.Name);
}
progfr est simple et utile: [ http://members.fortunecity.com/michaelmoser/tip11.htm]
il y a un outil pratique appelé NDepend qui vous donnera toutes les dépendances DLL.