RS232

Résolu
th62d Messages postés 2 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 6 octobre 2004 - 4 oct. 2004 à 15:31
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 - 4 oct. 2004 à 20:48
Bonjour,

J'essaie de faire communiquer mon pc via le port serie RS
232.....Quand je lance le programme TestCOM.c j'ai l'erreur suivante à la compilation .......??....

" 204 untitled1.cpp
passing `int *' as argument 4 of `ReadFile(void *, void *, long unsigned int, DWORD *, _OVERLAPPED *)' "

idem pour WriteFile
Quelqu'un pourrait il m'aider ? Merci d'avance.

les lignes incriminées sont les suivantes :

BOOL ReadCOM(void* buffer, int nBytesToRead, int* pBytesRead)
{
return ReadFile(g_hCOM, buffer, nBytesToRead, pBytesRead, NULL);
}

BOOL WriteCOM(void* buffer, int nBytesToWrite, int* pBytesWritten)
{
/* écriture sur le port */
return WriteFile(g_hCOM, buffer, nBytesToWrite, pBytesWritten, NULL);
}

1 réponse

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
4 oct. 2004 à 20:48
il suffit de faire un cast du pointeur vers int en LPDWORD :

BOOL WriteCOM(void* buffer, int nBytesToWrite, int* pBytesWritten)
{
/* écriture sur le port */
return WriteFile(g_hCOM, buffer, nBytesToWrite, (LPDWORD)pBytesWritten, NULL);
}

le cast est valide car un DWORD et un int c'est pareil, c'est 32 bits sauf que l'un est signé et pas l'autre (cette erreur dépend des compilos).
3
Rejoignez-nous