1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
HANDLE hComm=CreateFile(_T("\\\\.\\COM1"),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
if (hComm!=INVALID_HANDLE_VALUE)
{
COMMTIMEOUTS cto={MAXDWORD,0,0,0,0}; // ici le timeout en lecture = 0, ReadFile() doit rendre la main immédiatement avec ou sans données
if (SetCommTimeouts(hComm,&cto))
{
// essai de lecture, à mettre dans une boucle par exemple
BYTE buffer[50];
DWORD nobr;
if (ReadFile(hComm,buffer,sizeof(buffer),&nobr,NULL))
{
// ici nobr contient le nombre d'octets lus
// ReadFile() doit rendre la main immédiatement dans tout les cas !
// donc nobr = 0 s'il n'y a pas de données
}
else
{
// erreur de lecture
}
}
else
{
// impossible de régler le timeout
}
CloseHandle(hComm);
}
else
{
// impossible d'ouvrir le port com
} |
Partager