Class & CreateThread

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 29 juil. 2004 à 10:39
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 - 29 juil. 2004 à 16:30
Bonjour, j'ai un petit soucis de compilation...

dans une classe, je voudrais créer un Thread.

ma proc est définie comme cela :

LPTHREAD_START_ROUTINE MaClass::ThreadFunc( )
{
  .....
}


et pour la création du Thread :

hThread = CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)(MaClass::ThreadFunc), 0, 0, &dwThreadId);


mais j'ai le message suivant a la compilation :

error C2440: 'type cast' : cannot convert from '' to 'unsigned long (__stdcall *)(void *)'

3 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
29 juil. 2004 à 13:46
Salut,
Je fais pas de c++ mais je crois que l'erreur n'est pas un probleme de classe.
Comme le dis l'erreur, un ThreadProc doit etre une fonction déclarée en __stdcall, qui retourne un unsigned long, et qui prend 1 param, un void *.

Dans ta déclaration tu n'a pas mis de param void*.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 juil. 2004 à 16:23
J'ai essayé avec un LPVOID en parametre...

error C2440: 'type cast' : cannot convert from '' to 'unsigned long (__stdcall *)(void *)'


ca fonctionne, pour appeler une fonction qui ne se trouve pas dans ma classe...

DWORD WINAPI ThreadFunc( LPVOID lpParam ) 
{ 
    return 0; 
} 
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
29 juil. 2004 à 16:30
Salut,
Si c'est pas a cause du parametre alors je sais pas désolé.
0
Rejoignez-nous