cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 2013
-
3 oct. 2008 à 14:27
cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 2013
-
6 oct. 2008 à 22:24
Bonjour à tous
J'ai une question toute bete.
Je charge mes DLL de cette maniere pour pouvoir tester si elles sont utilisables sans obtenir de message d'erreur, et ça marche tres bien.
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
HwndDll = LoadLibrary("MaDll.dll")
If HwndDll Then
-
-
-
End If
FreeLibrary (HwndDll)
Mais voila, si je ne met pas la variable HwndDll public je perd sa valeur.
J'aimerais savoir quelle est la commande qui permet de retrouver la valeur de "HwndDll" c'est à dire l'emplacement mémoire de ma library.
Ceci me permettrais de pouvoir decharger la library sans avoir à mémoriser son emplacement mémoire dans une variable.
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 20131 5 oct. 2008 à 18:02
Merci à tous les deux de votre interet.
Je sais que LoadLibrary retourne le Handle.
Mais ma question etait de savoir si il y avait un moyen de l'obtenir à nouveau, si je le "perdais" ou si je ne le connaissais pas, ou si je ne voulais pas mettre ma variable en public.
Dans le cas d'une ouverture de ma DLL dans une procedure et la fermeture dans une autre.
De plus, si je connaissais un bon moyen de connaitre ce handle, je pourrais vérifier avec certitude que j'ai bien libéré ma DLL apres le FreeLibrary.
D'ailleur comment etre bien sur d'avoir libéré un handle ?????
Donc cette fonction me serait utile deux fois.
Pourriez vous me dire comment vous feriez, si vous ne mémorisiez pas pour X raison le handle à l'ouverture....et en aviez besoin ulterieurement ???
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_ghuysmans99
Messages postés3983Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 6 oct. 2008 à 21:32
@ [auteur/ANDREBERNARD/117726.aspx andrebernard] : Mouais, mais quand ça ne fonctionne pas, que faire ??
<title>FreeLibrary</title><link disabled="" href="../../backsdk3.css" rel="stylesheet" /><style type="text/css"><![CDATA[
@import url(../../backsdk4.css);
]]></style>[errors_3uwi.htm GetLastError].
cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 20131 6 oct. 2008 à 22:24
Donc GetModuleHandle donne bien le handle d'une DLL si elle est encore chargée en mémoire, sinon elle retourne zero.
C'est compliqué y'en a qui disent que oui et d'autre que non, c'est bien la premiere fois que je vois un sujet aussi peu clair.
Merci de votre aide