我正在尝试获取当前正在使用的组件列表,以便在我的 GUI 中显示它们。我正在使用以下代码:
TCHAR szComPort[8];
HANDLE hCom = NULL;
char str[20];
for (int i = 1; i <= 255; ++i)
{
if (i < 10)
wsprintf(szComPort, ("COM%d"), i);
else
wsprintf(szComPort, ("\\\\.\\COM%d"), i);
hCom = CreateFile(szComPort,
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL);
if (INVALID_HANDLE_VALUE != hCom)
{
sprintf_s(str,"COM%d",i);
ui->COMLIST->addItem(str);
}
CloseHandle(hCom);
}
这在我的笔记本电脑上运行良好,但由于某种原因,它在我的 PC 上崩溃了 QT 的 comports 10 及更高版本(这意味着如果我将 i<=255 更改为 i<=9 它工作正常),
有任何想法吗?
谢谢!