Si j'ai un exécutable Windows, comment puis-je savoir quelles DLL il chargera? Je ne fais que parler de ceux qui seront chargés statiquement, pas de ceux qu'il chargera dynamiquement avec quelque chose comme LoadLibrary.Comment puis-je savoir quelles DLL un chargement va charger?
Répondre
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.
Dependency Walker peut vous aider à déterminer quel fichier .dll sera chargé.
Beau programme GUI. 'Dependency Walker' essaie de trouver les DLL et leurs dépendances hiérarchiques. – SuB
progfr est simple et utile: [http://members.fortunecity.com/michaelmoser/tip11.htm]
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
Je crois qu'il devrait être: dumpbin/dépendants quel que soit –
dépendants ne vous montre que les DLL./ imports vous montre les fonctions * et * DLL. –
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
Il existe un outil pratique appelé NDepend qui vous donnera toutes les dépendances DLL.
_'NDepend' est un outil d'analyse statique pour .NET géré code'_. Donc, cela ne fonctionne que pour les applications .Net. – SuB
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.
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
Solution pour Microsoft .Net:
foreach (AssemblyName a in Assembly.ReflectionOnlyLoadFrom("SAMPLE.EXE").GetReferencedAssemblies())
{
MessageBox.Show(a.Name);
}
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.
bonne astuce, bien que ne fonctionne que pour l'exécution de processess. –
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
- 1. Comment savoir si dll RAPI est existant
- 2. Comment savoir quand un contrôle va être caché
- 3. Chargement d'une DLL sur un serveur jboss
- 4. Comment savoir pourquoi ma DLL dépend de zlib1.dll?
- 5. Chargement d'un dll C# dans un C# exe
- 6. Comment savoir quelles bibliothèques dynamiques sont nécessaires à un ELF?
- 7. Service Crash chargement dll
- 8. Comment charger un assembly qui référence une DLL Win32?
- 9. Comment savoir quand un élément XAML est terminé chargement
- 10. Comment savoir qu'une entité va insérer ou mettre à jour
- 11. Je veux savoir quelles fonctions sont disponibles à partir d'un Win32.DLL
- 12. Comment savoir quelles balises CVS couvrent quels fichiers et chemins?
- 13. Comment savoir quelles optimisations sont activées dans gcc?
- 14. Savoir quand le certificat d'un utilisateur va expirer
- 15. Comment savoir où charger les données du programme?
- 16. Charger dynamiquement dll dans le luminaire fitnesse
- 17. Comment simplement charger la dernière version de dll de GAC
- 18. Chargement de la DLL C# par réflexion, mais appli App.config
- 19. comment lire l'assemblage manifeste sans charger le fichier .dll
- 20. Comment savoir jQuery: Quand le chargement est prêt, montrez-le?
- 21. Complément Visual Studio: Comment savoir quand une solution a fini de charger
- 22. Désactiver le chargement automatique des DLL en C++
- 23. Crash C# lors du chargement C++ dll
- 24. Comment charger un XIB?
- 25. Charger un fichier .DLL et accéder aux méthodes de la classe dans?
- 26. Chargement dll exécutable (x32, x64): choisir le bon
- 27. Ruby ne parvient pas à charger une DLL
- 28. Comment savoir quelles bases de données sont programmées sur un serveur?
- 29. Comment puis-je savoir quelles sessions tracent (après un appel à DBMS_MONITOR.SESSION_TRACE_ENABLE)
- 30. Comment puis-je savoir quelles tables contiennent des données dans un fichier dans SQL Server?
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) . ;) –