Roro8883
Messages postés70Date d'inscriptionmardi 25 février 2003StatutMembreDernière intervention 1 février 2008
-
28 août 2006 à 19:16
hibakusha
Messages postés25Date d'inscriptionvendredi 4 août 2006StatutMembreDernière intervention23 mai 2007
-
1 sept. 2006 à 16:55
Bonjour, je souhaiterais savoir quelle fonction existe pour vérifier si une fonction dont je connais les paramètres et tout se trouve dans une DLL...
Ou s'il n'y a pas de fonction pour faire ça, comment pourrais-je savoir si la DLL comporte bien cette fonction ?
Et je voudrais faire cette vérification dans mon programme donc il me faut du code et pas un logiciel pour "explorer" les DLL ....
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 28 août 2006 à 20:04
Il faut qu'un type de pointeur soit défini pour ta fonction. Exemple:
typedef int (WINAPI *PMafonction)( int , int);
Cette fonction recoit deux int et renvoit un int.
Ensuite on charge la dll:
HINSTANCE hDLL = LoadLibrary("madll.dll");
Pour obtenir le pointeur sur ta fonction, tu fais:
PMafonction mafonction= (PMafonction) GetProcAddress(hDLL, "nomdelafonction"); if(!mafonction) -> Cette fonction n'existe pas.
else -> La fonction existe ....
Il ne faut pas oublier de libérer la dll quand on n'en a plus besoin:
FreeLibrary(hDLL);
hibakusha
Messages postés25Date d'inscriptionvendredi 4 août 2006StatutMembreDernière intervention23 mai 20071 1 sept. 2006 à 16:55
Et tu peut très bien trouver une fonction dont le nom est "lenomdemafonction" mais qui ne prend pas du tout les mêmes argument que ceux que tu attend, et la, c'est le drame.
Mais pourquoi as tu besoin de faire cela ? Ce que tu désires faire ne serait il pas une fausse solution à un vrai problème ?