bk263249
Messages postés3Date d'inscriptionmardi 11 mars 2003StatutMembreDernière intervention18 novembre 2003
-
13 mars 2003 à 17:08
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
14 mars 2003 à 09:28
Bonjour,
Je travaille sur un code C++ qui contient un thread qui gere la detection d'une carte dans un lecteur.
Depuis que je suis passe de VC++5 a VC++6, la gestion du thread ne marche plus nominalement.
Alors que l'ancien executable se comporte bien.
Puis je mettre cela sur le changement de compilateur?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 13 mars 2003 à 19:24
Tu passes par API CreateThread ou libcmt ?
Si API rien ne doit changer.
On va donc supposer que libcmt:
Tu declares ainsi
typedef unsigned(__stdcall *PTHREAD_START) (void*);
#define mcrBEGINTHREADEX(psa, cbStack, pfnStartAddr, pvParam, fdwCreate, pdwThreadID) \
((HANDLE)_beginthreadex((void*)(psa), (unsigned)(cbStack), \
(PTHREAD_START)(pfnStartAddr), (void*)(pvParam), \
(unsigned)(fdwCreate), (unsigned*)(pdwThreadID)));
DWORD m_dwThreadID;
HANDLE m_hThread;
Disons que sera ta func de thread:
DWORD WINAPI ProcThread(PVOID pvPrm);
bk263249
Messages postés3Date d'inscriptionmardi 11 mars 2003StatutMembreDernière intervention18 novembre 2003 14 mars 2003 à 09:20
Merci pour ta reponse rapide.
Je ne peux pas te dire si je travaille avec libcmt.
Tout ce que je peux te dire c'est que l'on defini le thread comme suit:
CWinThread *MyTd;
UINT MyTdProc(LPVOID);
Ensuite, on trouve:
MyTd = new CWinThread;
MyTd = AfxBeginThread(MyTdProc, &stop);
Je vais regarder pour mieux comprendre ce que tu m'envois.