cs_jefffii
Messages postés9Date d'inscriptionmardi 12 août 2003StatutMembreDernière intervention14 mai 2004
-
13 mai 2004 à 15:39
cs_jefffii
Messages postés9Date d'inscriptionmardi 12 août 2003StatutMembreDernière intervention14 mai 2004
-
14 mai 2004 à 15:31
j'ai des problèmes pour créer une thread avec dev-c++
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 13 mai 2004 à 16:12
c'est sur que ça compile vu tous les cast brutaux que tu fait
(le dernier est pas mal, tu caste une constante en un pointeur!!!)
point d'entrée du thread (si dans une classe, doit être une fonction static, l'objet associé peut être passé en param lors de CreateThread et récupéré dans lpData):
DWORD WINAPI ThreadFunc(LPVOID lpData)
{
// du code ici
return 0;
}
// création du thread (NULL peut être remplacé par un pointeur sur une classe ou une struct):
DWORD dwThreadId;
HANDLE hThread = CreateThread(NULL, 0, ThreadFunc, NULL, CREATE_SUSPENDED, &dwThreadId);
// pour modifier la priorité :
SetThreadPriority(hThread, THREAD_PRIORITY_NORMAL);
// si créé avec CREATE_SUSPENDED, il faut démarrer le thread
ResumeThread(hThread);
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 13 mai 2004 à 23:56
Si tu fais du C++ (qu'il y a histoire de classe dans le thread), emploie _beginthreadex au lieu de CreateThread sinon fuites memoire.
Lis Richter qui explique le pourquoi en details.
ciao...
BruNews, Admin CS, MVP Visual C++
Vous n’avez pas trouvé la réponse que vous recherchez ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 14 mai 2004 à 09:34
int Run(void * lpData);
Doit etre __stdcall, declaree 'static' et pas autrement !!!
Comme te l'a deja dit ymca2003, tes cast brutaux ne font que forcer le compilo a accepter de compiler, aucun risque que puisse tourner.
cs_jefffii
Messages postés9Date d'inscriptionmardi 12 août 2003StatutMembreDernière intervention14 mai 2004 14 mai 2004 à 11:23
effectivement la fonction static est la chose à faire mais j'ai un problème d'édition de liens
dans cette même fonction, j'utilise ptrDlg qui est maintenant static mais j'ai un problème C:\Dev-Cpp\Projets\CThread.o(.text+0x181):C:\Dev-Cpp\Projets\WinEmboss3\WinEmboss2\serialThread.cpp
more undefined references to `CThread::ptrDlg' follow