Utilisation des void * avec Visual C++ 5 express

z_san Messages postés 80 Date d'inscription jeudi 2 février 2006 Statut Membre Dernière intervention 24 mai 2007 - 5 mai 2006 à 10:30
Taron31 Messages postés 199 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 28 février 2008 - 9 mai 2006 à 17:00
Bonjour à tous

Voilà j'ai un petit soucis, avec des void*

Je développe une dll en c++ sur vc++ 5 express qui utilise une librairie écrite en c.

Dans cette librairie, il y a des fonction callbacks que je dois définir avant de lancer toute fonction utilisant le réseau.

le prototype de ces fonctions est

void moncallback(void (*procédure_a_lancer))

comment déclarer en vc++ 5 express cette fonction en paramètre, je sais que c'est assez difficile à mettre en oeuvre.

Si quelqu'un peut m'aider.

Merci encor

Z.

7 réponses

Taron31 Messages postés 199 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 28 février 2008
5 mai 2006 à 12:26
Quelle fonction en param ? Le callback ?

___________________
MVS - Most Valuable Student ( Microsoft)
0
z_san Messages postés 80 Date d'inscription jeudi 2 février 2006 Statut Membre Dernière intervention 24 mai 2007
5 mai 2006 à 13:35
je dois définir la fonction dans mon code comme suit :

monCallback( ( void (__cdecl *) (void) )methode_a_lancer);

pour pouvoir faire ça en manadgé j'ai défini ma méthode methode_a_lancer
comme suit :

static void methode_a_lancer(void* ptrThis)
{
.....
}

Aprés je dois caster ptrThis pour lancer une procédure qui éffectue le traitement à l'apparitioàn de l'événement géré par le callback
0
z_san Messages postés 80 Date d'inscription jeudi 2 février 2006 Statut Membre Dernière intervention 24 mai 2007
5 mai 2006 à 13:37
Donc c ma méthode à lancer que je passe en param à la fonction MonCallback
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
5 mai 2006 à 16:37
Généralement pour mettre une fonction en param, on fait d'abord quelque chose dans ce genre

typedef void (__stdcall *ROUTINE)(UINT, LPCSTR)


pour ce simplifier la vie.


Ensuite on fait


int MaFonction (ROUTINE Fonction)


Voila. Je crois que c'est ça.

___________________________________________
Les plus grands esprits trouvent toujours une solution
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Taron31 Messages postés 199 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 28 février 2008
5 mai 2006 à 17:26
Oui, normalement ça fonctionne...

___________________
MVS - Most Valuable Student ( Microsoft)
0
z_san Messages postés 80 Date d'inscription jeudi 2 février 2006 Statut Membre Dernière intervention 24 mai 2007
9 mai 2006 à 08:22
ok

merci mais j'ai pas trés bien compris le typedef void (__stdcall *ROUTINE)(UINT, LPCSTR)

merci encor

Z.
0
Taron31 Messages postés 199 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 28 février 2008
9 mai 2006 à 17:00
Grâce à ce typedef il te suffit de faire ROUTINE r = taFonction pour avoir un pointeur de fonction, sans s'embeter avec les para,theses habituelles...

___________________
MVS - Most Valuable Student ( Microsoft)
0
Rejoignez-nous