我在 Windows 8 上执行程序时遇到问题;我使用 ReadFile 从 RS232 串行端口检索数据。
我的代码多年来一直在从 Windows Xp 到 Win 7 的操作系统上运行,没有任何问题,但现在 ReadFile 操作总是在 94 到 100 毫秒之间,而它在以前的操作系统上非常快或立即:
我尝试修改超时以强制 1 毫秒,但结果始终相同:
GetCommTimeouts(Handle, &cto);
cto.ReadIntervalTimeout=MAXDWORD;
cto.ReadTotalTimeoutMultiplier=0;
cto.ReadTotalTimeoutConstant=0;
cto.WriteTotalTimeoutMultiplier=0;
cto.WriteTotalTimeoutConstant=0;
if(SetCommTimeouts(Handle, &cto) == 0)
// And the read function :
rOL.Offset = 0;
rOL.OffsetHigh = 0;
if (ReadFile(Handle, &byte, 1, &i, &rOL) == TRUE)
在阅读了很多帖子和所有 MSDN 之后,我没有找到任何解决方案!