我有一个管理com端口设备(条形码扫描器)的c ++服务。它能够很好地从com端口读取,并且一直在努力实现写入功能,以便向扫描器发送命令,请求它捕获图像。
我发布了32位版本,它在Windows 7 64位上工作得很好。我最近试图在Windows XP机器上测试完全相同的构建,但它无法写入com端口。
我发现错误是我的SetEvent(m_writeReady)返回true,但是没有设置事件(至少等待没有释放线程)。
m_writeReady = CreateEventW(NULL, TRUE, FALSE, NULL);
...
const HANDLE handles[7] =
{
...
m_writeReady
};
...
WaitForMultipleObjects(sizeof(handles) / sizeof(HANDLE), handles, FALSE, INFINITE);
并在另一个帖子中
SetEvent(m_writeReady);
什么会导致WaitForMultipleObjects在winxp上运行得不错时在winxp上没有解锁?