Bonjour à tous !
J'tilise la fonction ReadFile pour lire sur port COM.
Ca fonctionne correctement sans les Threads.
Avec les Threads ça ne veut plus marcher.
Pas d'erreur à la compil mais qd j'exécute, ça fonctionne jusqu'au
ReadFile !!!!!
INT Blick::lireCOM(LPVOID ptr)
{
Blick* pFlag = (Blick*) ptr;
AfxMessageBox ( "Test pFlag....");
pFlag->lecture();
return 0;
}
//////////////////////////////////////////////
void Blick::lecture()
{
while(1)
{
AfxMessageBox ( "Test attente trame....");
block.Lock();
com1->lire(trame,total,&nbre); // dans un tableau
block.Unlock();
AfxMessageBox ( "OK une Trame recue...."); traiterTrame();
}
}
La fonction lire utilise ReadFile et c là que ça plante
////////////////////////////////////////////////////////////
void CLiaisonRS232::lire(unsigned char* donnees, int noctets, int* nb)
{
BOOL res;
ULONG nbOctets;
// Lecture reponse
res =
ReadFile(
hCOM, // Handle du port
donnees, // Adresse buffer
noctets, // Nb octets à lire
&nbOctets, // Nb octets lus
NULL); // Lecture synchrone
*nb=(int)nbOctets;
}
voilà l'erreur : la mémoire ne peut pas être "Read"
Merci