Pointeur sur une fonction

Résolu
cs_pasty Messages postés 11 Date d'inscription lundi 2 février 2004 Statut Membre Dernière intervention 11 juillet 2009 - 19 févr. 2007 à 15:03
cs_pasty Messages postés 11 Date d'inscription lundi 2 février 2004 Statut Membre Dernière intervention 11 juillet 2009 - 19 févr. 2007 à 16:15
Bonjour,
J'appelle une fonction f(int *,int *,int) dont le code  est dans un DLL depuis le programme principal main.cpp


Je déclare la fonction dans main.cpp ainsi:


int PASCAL (*f)(int *,int *,int)


je retrouve l'adresse de la fonction:


f=GetProcAddress(hlib,"f");


Avec le compilateur borland ça marche mais avec dev c++ j'ai un message "invalide conversion from int(*)() to int(*)(int *,int *,int)"


J'ai une deuxième question: comment faire pour éviter le GetProcAddress, le DLL étant compilé avec flatasm.


 

2 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
19 févr. 2007 à 15:32
Essais ceci:

typedef int (*FONCTION)(int*, int*, int);

...

FONCTION fonc;
fonc=(FONCTION)GetProcAddress(hlib,"f");

Si tu as la lib de ta DLL pour ajouter au linker, tu peux éviter GetProcAddress.

C++ (@++)<!--
3
cs_pasty Messages postés 11 Date d'inscription lundi 2 février 2004 Statut Membre Dernière intervention 11 juillet 2009
19 févr. 2007 à 16:15
Merci,
ça marche!
0
Rejoignez-nous