Bonjour,

je "discute" avec un port COM sur mon ordinateur portable.
Pour cela, je crée un handle comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
	// get a handle on the communications port (usually COM1)
	m_hComm = CreateFile( pPort,
				GENERIC_READ | GENERIC_WRITE,
				0,    // comm devices must be opened w/exclusive-access 
				NULL, // no security attributes 
				OPEN_EXISTING, // comm devices must use OPEN_EXISTING 
				0, //FILE_ATTRIBUTE_NORMAL ||  FILE_FLAG_OVERLAPPED,    // nonoverlapped I/O 
				NULL);  // hTemplate must be NULL for comm devices
puis je tente d'y écrire 4 octets (çà se passe bien) et immédiatement après d'en lire 1 ... et là c'est l'échec :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
	fRes = WriteFile(m_hComm, lpBuf, dwToWrite, &dwWritten, &osWrite);
 
	fRes = ReadFile(m_hComm, lpBuf, dwToRead, &dwRead, &osRead);
dwToWrite vaut 4 et dwWritten vaut aussi 4 après l'appel de fonction WriteFile.
dwToRead vaut 1 et, après l'appel (très long) à ReadFile, dwRead vaut 0 (mais fRes vaut 1).

Là, je ne comprends pas

Si quelqu'un à une 'tite idée ...