gpt4 book ai didi

c++ - 为什么我的热插拔 HID 设备应用程序在每次连接时变得越来越慢?

转载 作者:太空宇宙 更新时间:2023-11-04 12:35:58 38 4
gpt4 key购买 nike

我正在使用 native Windows 代码来枚举 HID 设备列表并根据硬件 ID 设置连接。我在 Qt 应用程序中使用的 DLL 中执行此操作。我连接、写入和读取数据都没有问题。当我关闭设备时,我希望我的应用程序自动重新连接到该设备或共享相同硬件 ID 的另一台设备;但是,在每个后续连接上,它都会减慢 Qt GUI 的速度。例如,标签之间的切换明显延迟。

这让我相信我可能没有正确断开与 HID 设备的连接,或者存在某种内存泄漏。如果我重新启动应用程序,再次连接到设备,然后 GUI 将正常运行。

目前,如果出现故障我会在阅读报告时通过关闭句柄来触发“断开连接”过程,但这也许还不够?有没有一种方法可以在某种意义上“清理历史”,以便在不降低数据速度的情况下重新连接到设备?

这是我关闭 I/O 句柄和事件句柄的代码:

char* HID::ReadReport() 
{
DWORD BytesRead;
InputReportBuffer[0] = REPORT_ID;
BOOL Result = ReadFile(IOHandle, InputReportBuffer, Capabilities.InputReportByteLength, &BytesRead, (LPOVERLAPPED)&HIDOverlapped);
if (Result)
{

}
else
{

}
return InputReportBuffer;
}

最佳答案

问题与 Qt 相关。多次调用与 ReadReport 函数相关的 QTimer 连接设置,导致后续连接尝试速度变慢。

关于c++ - 为什么我的热插拔 HID 设备应用程序在每次连接时变得越来越慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56351821/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com