ReadFile

Signaler
Messages postés
90
Date d'inscription
samedi 18 février 2006
Statut
Membre
Dernière intervention
6 décembre 2006
-
Messages postés
627
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
24 juillet 2011
-
bonjour,
je voudrai savoir si la fonction ReadFile à reçu une donnée

int result ;
result = ReadFile(hComm,&t,1,&dwRead,&ov); // tout est déclaré
if ( !( result == 0))
{
//je traite la donnée
}

mais ça ne fonctionne pas il n' y a aucune erreur mais rien ne se passe
est ce que ReadFile renvoi un BOOL

merci de votre aide

4 réponses

Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
Faut tester dwRead.

+2(p - n)
Messages postés
90
Date d'inscription
samedi 18 février 2006
Statut
Membre
Dernière intervention
6 décembre 2006

j' ai fais

if ( dwRead ==1 ) // 1 car il reçoi 1 byte quand il y a une donnée
{

}
ca ne donne rien..
merci
Messages postés
126
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
11 juillet 2006

Bonjour

Ton readfile est declarer un asynchrone (presence de &ov) ovelapped structure. Donc ta lecture n'est pas forcement directement apres ta demande.
dwread ne contient pas forcement le nombre de byte lu
"If this is an overlapped read operation, you can get the number of bytes read by calling GetOverlappedResult.
"
Il faut donc que tu gere les evenements du port com et agir des que tu reçois un carateres par exemple.

va voir la MSDN pour t'aider

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/readfile.asp

TOCHE
Messages postés
627
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
24 juillet 2011

if ( !( result == 0)) <=> if(result) non ?