Bonjour à tous,
je bloque depuis quelque temps sur un problème, et je commence à me demander si je vais réussir à trouver une solution. Je vais donc vous exposer mon problème proprement:
système: windows 2000 pro.
IDE: visualC++ 7.1
J'ouvre le port parallèle vie un CreateFile:
Le FileCreate() fonctionne et je n'obtiens pas de message d'erreur. Mon m_hPortHandle est valide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 m_hPortHandle = CreateFile("LPT1", // device name GENERIC_READ|GENERIC_WRITE, // access mode 0, // share mode 0, // security attributes OPEN_EXISTING, // creation dispositions FILE_ATTRIBUTE_NORMAL, // flags and attributes NULL); // template file if (m_hPortHandle==INVALID_HANDLE_VALUE) { ReportLastError("CreateFile"); //excellente fonction de debuggage récupérée sur codeguru.com return FALSE; }
Ensuite, j'essaie d'appliquer les timeouts:
Et là, à l'appel de SetCommTimeouts j'obtiens: error 87: paramètre invalide (j'aimerais bien savoir lequel. J'ai essayé de rentrer en pas à pas dans la fonctio SetCommTimeouts <F11>, mais ça ne marche pas).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 COMMTIMEOUTS cto; cto.ReadIntervalTimeout = 2000; cto.ReadTotalTimeoutConstant = 0; cto.ReadTotalTimeoutMultiplier = 0; cto.WriteTotalTimeoutConstant = 0; cto.WriteTotalTimeoutMultiplier = 0; if (0==SetCommTimeouts(m_hPortHandle, &cto)) { ReportLastError("SetCommTimeouts"); return FALSE; }
J'ai essayé différentes ruses pour me passer de ces timeouts, mais rien n'y fait. Si ces timeouts ne sont pas correctements configurés, j'obtiens de gros soucis par la suite sur les ReadFile().
Que se passe-t-il? Oublie-je quelque chose? Mon problème n'a-t-il donc point de solution?
Partager