Bonsoir à tous,

Je souhaiterai créer un thread qui recoit en paramètre d'entrée une fonction de callBack qui elle aussi possède un paramètre.

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
int startProg(int num, PVOID fcCallBack(PVOID stat)
{
   int status = 0;
 
   status = pthread_create( &threadOne, NULL, threadPrincipale, PVOID fcCallBack);
Mon problème je pense, c'est que je lui passe deja comme argument le pointeur sur la fonction de callback, mais comment lui ajouter son propre argument (PVOID stat) ?


voila la fonction threadPrincipale

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
PVOID threadPrincipale( PVOID fcCallBack(PVOID number))
{
     int * r = number;
 
     printf("le numéro maitre vaut %d\n", *r);
 
     return null;
}
J'ai un message à ce moment la me disant :
"Erreur "number" non déclaré (première utilisation dans cette fonction)"

et voici mon programme principale avec le callback mentionné:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
 
 
PVOID callBackNumber(PVOID num)
{
     int * n = num;
 
     // .....
 
    return NULL;
}
 
 
int main(void)
{
    int status = 0;
 
    status = startProg(0, (PVOID) CallBackNumber);
 
    // .....................;
 
    return 0;
}
Je sais que ca fait pas mal d'imbrications, mais elles sont nécéssaires dans le cadre de mon projet.

Si quelqu'un pouvais me confirmer que c'est possible, je pourrais me débrouiller de mon coté, sinon comment procéder pour contourner mon problème ?

J'espere avoir été assez claire.

En tout cas Merci d'avance pour votre aide.