Détails de la réponse

Jean-Claude BELLAMY
Le
Le lundi 05/03/2012 12:25:31, Lucas Levrel a écrit dans le message
qui suit :
Bonjour,

J'ai écrit un programme utilisant GTK+ comme interface graphique. Je le
compile avec g++ « sous » MinGW. Par défaut, l'exécutable produit est lié aux
DLL de GTK+, et je dois donc les distribuer avec l'exécutable.

Mais comme je n'utilise qu'une petite partie des possibilités de GTK+,
l'exécutable n'a sans doute besoin que de quelques DLL, pas toutes. Y a-t-il
un outil qui permette de savoir lesquelles ?




"Dependency Walker" est l'outil le plus classique pour cela.

http://www.dependencywalker.com/

Mais ne t'attends pas cependant à des miracles !

Tout dépend de la façon dont les DLL sont appelées!

Si elles sont appelés "statiquement", c'est à dire de façon explicite
dans le code, avec le nom de la DLL dans un fichier .def (en C) ou avec
une clause "external" (en Delphi), il n'y aura aucun problème.

Par contre, si une DLL est appelée dynamiquement, à l'aide de la
fonction "LoadLibrary" associée à la fonction "GetProcAddress", le nom
de la DLL étant alors stocké dans une variable chaîne quelconque, il
n'y a aucun moyen pour connaître a priori les DLL appelées!
Il faudra effectuer un suivi pas à pas d'exécution du logiciel.


--

May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP Expert IT Pro]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr