Déchargement de DLL

Résolu
Xilofeon Messages postés 55 Date d'inscription mercredi 24 décembre 2003 Statut Membre Dernière intervention 14 avril 2007 - 17 nov. 2005 à 14:24
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 17 nov. 2005 à 19:10
lut

Y'a t'il un moyen de déchargé une DLL par elle même. Je veut dire que ce n'est pas le code du programme qui l'utilise qui doit déchargé la DLL (un simple FreeLibrary(DLL); suffit). Non ce que je cherche à faire c'est qu'un code inlus dans la DLL, la fasse ce déchargé toute seule.

PS: la dll est chargé dynamiquement.

3 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 nov. 2005 à 14:59
Tu peux toujours appeler FreeLibrary depuis la DLL pour forcer le système a décrémenter son compte d'instance dans le processus ainsi si compte revient à 0 le système déchargera la DLL.
Tout ceci reste très dangereux car le processus ayant chargé la DLL ne sera pas forcément au courant et risque d'appeler un pointeur de fonction sur une adresse invalide, à déconseiller absolument.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
3
Xilofeon Messages postés 55 Date d'inscription mercredi 24 décembre 2003 Statut Membre Dernière intervention 14 avril 2007
17 nov. 2005 à 18:52
Oui j'imaagine bien que c'est pas très bon dans certain cas. Mais là la DLL n'a que 2 fonction. Et le programme qui l'exécute verif à chaque utilisation si la DLL est toujours chargé et si les fonctions son toujours valid. Normalement je pense pas que cela devrait posé de porblème.

Merci.

PS: Pour d'autre voici comment recup le HMODUL:


FreeLibrary
(GetModuleHandle
(_T
("madll.dll")))
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 nov. 2005 à 19:10
Ta dll pourrait être renommée auquel cas GetModuleHandle ne fonctionnerait plus.
Enregistre ton hdll dans DLL_PROCESS_ATTACH, là il sera toujours bon et plus besoin de GetModuleHandle.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
Rejoignez-nous