//设备相关的临时变量
HANDLE hUsb = INVALID_HANDLE_VALUE;
DWORD dwAccess = GENERIC_READ | GENERIC_WRITE;
DWORD dwFlags = FILE_FLAG_OVERLAPPED;//FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED;//
OVERLAPPED IoOverlappedwrite;
ZeroMemory(&IoOverlappedwrite, sizeof(OVERLAPPED));
IoOverlappedwrite.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
if (IoOverlappedwrite.hEvent == NULL)
{
//unsigned long error = GetLastError();
//sbdriverOutputText(_T("NewTextExecuteIo failed to allocate overlapped event error (%d)"), error);
//break;
//致命异常需要处理,暂略----ydn
return FALSE;
}
if (com >= 10)
sprintf((char*)strDeviceName.c_str(), "\\\\.\\COM%d", com);//出现问题
else
sprintf((char*)strDeviceName.c_str(), "COM%d", com);
qDebug()<<"CreateFileA strDeviceName"<<strDeviceName.c_str();
hUsb = CreateFileA(strDeviceName.c_str(),dwAccess,0,NULL,OPEN_EXISTING,NULL,NULL);
if (INVALID_HANDLE_VALUE == hUsb ) {
unsigned long error = GetLastError();
printf("error = %d\n",error);
qDebug()<<"CreateFileA error = %s"<<GetLastError();
LOG("CreateFileA error = %s",GetLastError());
// MessageBox (NULL,"error2222!KKKK",strDeviceName,MB_ICONSTOP|MB_OK);
return FALSE;
}
terminate和quit导致串口资源被占用
最新推荐文章于 2021-11-29 21:18:35 发布