Comment créer un thread ? [C++] - Programmation
Marsh Posté le 20-01-2001 à 22:50:57
Ben si tu sais pas quelle fonction exécuter, pourquoi crées-tu un thread 
Marsh Posté le 20-01-2001 à 22:52:45
je sais quelle fonction executer mais je sais pas comment dire au thread qu'il doit executer cette fonction.
Marsh Posté le 20-01-2001 à 22:58:49
Tu mets le nom de la fonction dans l'appel à CreateThread.
--Message édité par Verdoux--
Marsh Posté le 20-01-2001 à 23:09:41
voilà le pb : 
le code : 
void Test() 
{ 
 __asm 
 { 
ssxor eax,eax 
boucle: 
ssinc eax 
ssjno boucle 
 } 
} 
 
void CTestCPUDlg::OnLancerTest()ss
{ 
 CreateThread(NULL, 100, Test, NULL, NULL, NULL);ss
} 
 
et l'erreur : 
error C2664: 'CreateThread' : cannot convert parameter 3 from 'void (void)' to 'unsigned long (__stdcall *)(void *)' 
ssssssssNone of the functions with this name in scope match the target type
Marsh Posté le 20-01-2001 à 23:17:49
Tu changes le prototype de Test en: 
DWORD Test(LPVOID parameter) 
 
Et l'appel en: 
CreateThread(NULL, 100, (LPTHREAD_START_ROUTINE) Test, NULL, NULL, NULL);
Marsh Posté le 20-01-2001 à 23:24:28
OK merci, ca marche. 
Mais maintenant, j'aimerais savoir comment faire pour mettre dans le thread un code qui affiche qqchose dans un textbox de la fenêtre. 
 
 UpdateData(TRUE); 
 m_val=100; 
 UpdataData(FALSE); 
 UpdateWindow(); 
 
donne : 
error C2065: 'UpdateData' : undeclared identifier 
error C2065: 'm_val' : undeclared identifier 
error C2065: 'UpdataData' : undeclared identifier 
error C2660: 'UpdateWindow' : function does not take 0 parameters
Marsh Posté le 21-01-2001 à 00:29:54
moi je fais ça: 
void myThread(void *pvoid) 
{ 
 while(1) 
 { 
ssSleep(20); 
ssInvalidateRect(hWnd,NULL,FALSE); 
 } 
} 
..... 
..... 
switch (message) 
{ 
 case WM_CREATE: 
ss_beginthread(myThread,0,NULL); 
 return 0 ; 
... 
 
 
Moi c'est pour un prog opengl donc le thread est executé tout le temp.
Marsh Posté le 20-01-2001 à 22:34:49
Tout est dans le sujet.
J'ai VC++6 Pro
J'ai essayé la fonction API CreateThread
Mon problème c que cette fonction veut un pointeur vers une fonction que le thread doit executer et que je sait pas comment lui dire quelle fonction il doit executer.