Xilofeon
Messages postés55Date d'inscriptionmercredi 24 décembre 2003StatutMembreDernière intervention14 avril 2007
-
17 nov. 2005 à 14:24
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 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.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 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.
Xilofeon
Messages postés55Date d'inscriptionmercredi 24 décembre 2003StatutMembreDernière intervention14 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.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 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.