DependencyWalker, explorer les dépendances d’une application

Bien souvent, lorsque l’on développer une application, tout se passe bien jusqu’au moment ou l’on souhaite la faire fonctionner sur une autre machine. Bien souvent, lors de cette étape, on fait le douloureux constat que l’application ne démarre même bien, en général, on obtient juste un message indiquant qu’il y a un problème et que l’application ne peut démarrer, avec pour seule suggestion de remède une réinstallation, ce qui bien sur est inutile.

Dans la plupart des cas, on est face à un problème de dépendances avec des bibliothèques présentes sur la machine de développement (installées au bon endroit lors de l’installation des outils de développement), et absentes des systèmes « classiques ».

Il est parfois aisé de savoir quelles sont les librairies utilisées, en fonction des SDK et autres Framwork utilisés, mais parfois, ça n’est pas si simple.

Dans ces cas, il existe des logiciels capables d’analyser un fichier binaire pour en retirer les dépendances. Dependency Walker fait parti de ceux-ci.

Fenêtre principale de Dependency Walker

Fenêtre principale de Dependency Walker

La simple ouverture d’un exécutable dans ce logiciel vous permettra de voir instantanément de quelles DLL à besoin le logiciel pour fonctionner. Une simple recherche sur la machine de dev devrait vous permettre de mettre la main sur la DLL manquante afin de la joindre à votre programme pour que tout rentre dans l’ordre.

Un certain travail de tri et de sélection des informations restera cependant nécessaire car comme le montre la capture ci-dessus, l’intégralité des DLL et dépendances sont affichées, il faudra donc différencier les DLL systèmes (toujours présentes sous Windows et qu’il ne sera donc pas nécessaire d’importer) des DLL applicatives qu’il faudra fournir.

Tags: , , ,

One Response to DependencyWalker, explorer les dépendances d’une application

Répondre à depannage informatique Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *