Multi-thread

Signaler
Messages postés
3
Date d'inscription
mardi 11 mars 2003
Statut
Membre
Dernière intervention
18 novembre 2003
-
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
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?

Merci pour votre aide.

jmv

3 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
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);

m_hThread = mcrBEGINTHREADEX(0, 0, ProcThread, &MonParam, 0, &m_dwThreadID);

BruNews, ciao...
Messages postés
3
Date d'inscription
mardi 11 mars 2003
Statut
Membre
Dernière intervention
18 novembre 2003

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.

@+

Jmv
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Veuillez preciser quand MFC ou autres options.
Moi c'est pur Win32 donc pas pour moi.
BruNews, ciao...