PROBLEME DE THREAD (CreateThread -->ERROR)

Signaler
Messages postés
6
Date d'inscription
mercredi 30 octobre 2002
Statut
Membre
Dernière intervention
22 janvier 2003
-
Messages postés
45
Date d'inscription
jeudi 10 octobre 2002
Statut
Membre
Dernière intervention
6 décembre 2002
-
Salut à tous,
j'ecris un module de visionnement d'image et
je souhaiterai pouvoir stopper ma fonction OnPlay au moment voulu mais j'ai un pb a la creation d'un thread (novice en CPP)

error C2664: 'CreateThread' : cannot convert parameter 3 from 'unsigned long (void *)' to 'unsigned long (__stdcall *)(void *)'

la fonction appelee est:
DWORD CEssaiMFCDlg::Play(LPVOID pdata)
{-------}

la fonction appelante:
void CEssaiMFCDlg::OnStock()
{
// TODO: Add your control notification handler code here
HANDLE hThread;
LPVOID pdata;
hThread = CreateThread(NULL, 0, Play, pdata, 0, NULL);

j'ai teste d'autre manières proposees sur le net (exemple inserer unsigned long (__stdcall *)(void *))Play devant Play) mais ca n'aboutit pas.

Merci bcp si vous avez la solution à mon pb

@+
Neub
Suivi de la discussion

2 réponses

Messages postés
4
Date d'inscription
mercredi 23 octobre 2002
Statut
Membre
Dernière intervention
23 novembre 2002

Salut,
Je suis pas un pro des threads mais ceux que j'ai fait fonctionnent... je déclare ma fonction appelée :
DWORD WINAPI ThreadFunc( LPVOID lpParam )
{ ... ; return 0; }

Sinon t'as des super exemples sur MSDNonline en cherchant CreateThread sur google.fr

J'espère t'avoir aidé... un peu

Aymeric ZINGRAFF
ENSIAME, ValRobotique
Messages postés
45
Date d'inscription
jeudi 10 octobre 2002
Statut
Membre
Dernière intervention
6 décembre 2002

hy,
effectivement il y a des pbs de casting, c'est pourquoi J.Richter réalise cela en faisant tous les textes:

DWORD dwThreadID;

HANDLE hThread = ((HANDLE)_beginthreadex(
(void *) (lpsa),
(unsigned) (cbStack),
(PTHREAD_START) (ProcThread),
(void *) (lpvThreadParm),
(unsigned) (fdwCreate),
(unsigned *) (&dwThreadID)))

l'lo