begin process at 2010 03 19 09:40:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Pointeur sur fonction ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pointeur sur fonction ?

mardi 10 janvier 2006 à 18:42:59 | Pointeur sur fonction ?

tintin72

Bonjour,

J'ai un petit souci avec les pointeurs sur fonction.
Voilà, j'ai une fonction qui prend comme argument un pointeur sur fonction:

void maFonction(int (*ptFn)(int))

dans cette fonction j'appel une fonction Windows (timeSetEvent) qui à son tour
appel une fonction callback. Ce que je voudrais, c'est récupérer mon pointeur sur fonction
dans la fonction callback. Je le passe donc en 4éme argument de timeSetEvent:

timeSetEvent(arg1, arg2, (LPTIMECALLBACK)fn_cb, (DWORD_PT)ptFn, arg5);

le problème c'est que quand j'essaie de le récupérer dans la fonction callback

void CALLBACK fn_cb(UINT id, UINT msg, DWORD instance, DWORD param1, DWORD param2)
{
       int *ptFn = (int*)instance;

et que je veux ensuite appeler la fonction

     ptFn(25);

le compilo me dit: called object is not a function

est ce que quelqu'un pourrait me dire comment faire ?

Merci

Tintin 72

mardi 10 janvier 2006 à 19:14:45 | Re : Pointeur sur fonction ?

Gendal67

Bonsoir,

Commence par définir ton pointeur en un type de pointeurs de fonctions.
Pour cela, il faut écrire :

typedef int (*MYFUNC)(int);

et ensuite tu déclares une variable globale de type MYFUNC :

MYFUNC pfn;

Et comme ça, plus besoin de t'embêter à la passer aux fonctions en argument; c'est directement accessible

mardi 10 janvier 2006 à 21:14:15 | Re : Pointeur sur fonction ?

aardman

Membre Club
Salut,
int (*ptFn)(int) = instance;
et tu utilises ptFn(...).
C'est vrai que de definir un type sur ton pointeur de fonction est plus pratique, mais le coup de la variable globale c'est bof...


Cette discussion est classée dans : fonction, int, pointeur, callback, ptfn


Répondre à ce message

Sujets en rapport avec ce message

pointeur de fonction [ par Larwin ] salut tout le mondebon j'suis un gros débutant c/c++ et je fais mes premiers pas depuis 2, 3 jours...j'ai deja un petit probleme :)je m'explique :j'ai Pointeur vers une fonction dans une classe ... [ par MoDDiB ] Supposons que j'ai la fonctionvoid Fonction(int test,int t);appartenant a la classe Cclass.Quelle est la syntaxe pour creer un pointeur vers cette fon (__cdecl *) => kesako? [ par Oeil_de_taupe ] Bonjour tout le monde, J'ai créé deux classes qui représentent un protocole pour envoyer des données entre deux PC. Lors de l'appele de leur construc convertir pointeur int* en reference int& ??? je fais quoi ? [ par equimose ] j'ai une fonction qui prend comme parametre une CMyLigne & ABet j'ai besoin d'envoyer a cette fonction un pointeur sur une CMyLigne * pLigne !c'est po Passer un pointeur sur une instance à une fonction membre static ? [ par tintin72 ] Bonjour, j'ai un problème pour passer un pointeur sur une instance ou l'adresse de l'instance à une fonction callback Windows. Je m'explique J'ai créé pointeur sur une fonction [ par pasty ] 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 m pointeur de fonction membre [ par maximus4 ] bonjour a tous,je voudrai savoir comment on passe en paramètre d'une fonction membre une autre fonction membre d'une autre class déjà instanciéeex:cla Appel d'une fonction [ par anisj1m ] Bonjour;je suis un développeur java et je vais utiliser une bibliothèque écrite en c, puisque je ne suis pas expert en C, j'ai trouvé certaines ambigu [WinAPI] fonctions graphiques [ par riked ] Bonjour (ou bonsoir), Je suis nouveau sur cppfrance et je vient vous exposer mon problème. Je fait actuellement un programme qui à pour but d'affich Probleme passage tab** de fonctions a fonction. [ par Nitrakz ] Bonjour tous le monde ! Comme l'explique le titre j'ai un petit soucis pour passer un tableaux a 2 dimensions tab[i][j] d'une fonction a une autre.


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales