GUIで表示するために現在使用されているcomportsのリストを取得しようとしています。私は次のコードを使用しています:
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);
}
これは私のラップトップでは正常に機能しますが、何らかの理由で、comports 10以降のPCでQTがクラッシュします(つまり、i<=255をi<=9に変更すると正常に機能します)、
何か案は?
ありがとうございました!