Bonjour
je suis en train de développer une petite application d'apprentissage concernant les threads. j'ai créé une fonction principale de thread dont voici le code.
j'ai ensuite créé une fonction de démarrage et d'arrêt de threads dont voici le code :
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 UINT CMultitacheDoc::ThreadFunc(LPVOID pParam) { // Convertit l'argument en un pointeur sur la roue pour ce thread CRoues* LpRoue = (CRoues*) pParam; // récupère un pointeur sur l'indicateur de continuation BOOL* pbContinue = LpRoue->GetContinue(); // boucle tant que l'indicateur de continuation indique TRUE while (*pbContinue) // LpRoue Dessine LpRoue->Draw(); return 0; }
lorsque je génère mon application j'ai l'erreur suivante :
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
24
25
26
27
28
29
30
31
32
33 void CMultitacheDoc::GestionThreadRoue(int nIndex, BOOL Status) { // Si nous suspendons le thread if (!Status) { // Le pointeur sur le thread est-il valide ? if (m_pRoueThread[nIndex]) { // Récupère le handle pour le thread HANDLE hThread = m_pRoueThread[nIndex]->m_hThread; // Attend que le thread meurt ::WaitForSingleObject (hThread, INFINITE); } } else // Sinon nous exécutons le thread { int iSpnr; // Quelle roue utiliser ? switch (nIndex) { case 0: iSpnr = 1; break; case 1: iSpnr = 3; break; } // Démarre le thread, en passant un pointeur sur la roue m_pRoueThread[nIndex] = AfxBeginThread(ThreadFunc, (LPVOID) &m_cRoue[iSpnr]); } }
error C3867: &'CMultitacheDoc::ThreadFunc'*: liste d'arguments manquante dans l'appel de fonction*; utilisez 'CMultitacheDoc::ThreadFunc' pour créer un pointeur vers membre.
j'ai pris comme référence l'explication sur les processus et je ne vois pas d'ou provient mon erreur.
je developpe sous Visual C++ 2008 et mon SE est Windows XP pro
merci pour votre aide
JF MARTIN
pense à utiliser la balise code, Merci Farscape
Partager