CreateFile(_szCommStr, GENERIC_READ | GENERIC_WRITE, 0, NULL,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | _dwIOMode,NULL),倒数第二个参数,_dwIOMode = FILE_FLAG_OVERLAPPED
CreateFile(_szCommStr, GENERIC_READ | GENERIC_WRITE, 0, NULL,OPEN_EXISTING, FILE_FLAG_OVERLAPPED,NULL)
这样写的话,就打不开HUB上的串口,如果变成FILE_FLAG_OVERLAPPED | FILE_FLAG_OVERLAPPED,就可以打开串口,为什么呢?FILE_FLAG_OVERLAPPED不就等于FILE_FLAG_OVERLAPPED|FILE_FLAG_OVERLAPPED吗?
有大神知道吗
仅供参考:
TCHAR *szPort = new TCHAR[50];
HANDLE m_hComm;
_stprintf_s(szPort,50, _T("\\\\.\\COM%d"), portnr);
// get a handle to the port
m_hComm = CreateFile(szPort, // communication port string (COMX)
GENERIC_READ | GENERIC_WRITE, // read/write types
0, // comm devices must be opened with exclusive access
NULL, // no security attributes
OPEN_EXISTING, // comm devices must use OPEN_EXISTING
FILE_FLAG_OVERLAPPED, // Async I/O
0); // template must be 0 for comm devices
if (m_hComm == INVALID_HANDLE_VALUE)