Lancement de threads à l'intérieur d'une classe
Bonjour,
J'ai défini une classe du type :
Code:
1 2 3 4 5 6 7
| class MaClasse
{
public:
DWORD WINAPI Methode1(LPVOID S);
DWORD WINAPI Methode2(LPVOID S);
...
} |
où Methode1 et Methode2 correspondent à des threads.
Dans Methode1, j'essaie de lancer le thread Methode2 :
Code:
1 2
| unsigned long thread_id;
HANDLE threadhandle=CreateThread(NULL,0,Methode2,0,0,&thread_id); |
mais, à la compilation, j'ai l'erreur suivante :
Citation:
error C2664: 'CreateThread' : cannot convert parameter 3 from 'unsigned long (void *)' to 'unsigned long (__stdcall *)(void *)'
J'ai essayé de caster mais c'est impossible car __stdcall n'est pas un type. A mon avis, le problème vient du fait que mes threads sont des methodes et non des fonctions. Quelqu'un a-t-il déjà rencontré le problème ? Y a-t-il un moyen de le résoudre ou tout au moins pouvez-me donner une explication de ce qu'il se passe réellement ?
Merci.