DLL Hell et Dependency Walker

Avant la venue des Framework .Net, nous étions confrontés à l’enfer des DLL ou Dynamic Link Libraries. Sous Windows, vous n’avez pas la possibilité de charger en mémoire deux versions de DLL disposant du même nom. Du coup, les éditeurs en étaient venus parfois à modifier les DLL système fournies par Windows pour pouvoir faire fonctionner leurs exécutables. J’ai connu ça sous Windows NT 4, avec un logiciel de partage de fax signé Symantec. Pour que le système retrouve un fonctionnement « normal », il fallait désinstaller le logiciel !

Tous les logiciels développés en C ou C++ sous Windows continuent d’utiliser les DLL. la règle est simple. Sont chargées les librairies présentes dans le répertoire de l’exécutable et, à défaut dans les répertoires listés par la variable PATH du système Windows. Par défaut, cette variable contient les répertoires :

Je vous incite d’ailleurs à continuer d’ajouter et d’activer la valeur AlwaysUnloadDLL pour une plus grande stabilité de vos systèmes Windows, notamment sur les serveurs de type Bureau à distance, s’appuyant sur le protocole RDP.

Afin de connaître les DLL utilisées par un exécutable, vous disposez d’un extraordinaire utilitaire au nom de Dependency Walker. Il vous offre la possibilité de disposer de la liste complète des DDL associées à l’exécutable au format CSV, en faisant File -> Save As.

DLL Hell et Dependency Walker

Windows  / DLL Hell Windows 

Commentaires

Pas encore de commentaire.

Laisser un commentaire

(requis)

(requis)