以下是查找原因的步骤:
_hCommHandle = ::CreateFile(
_szCommStr,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING...,
FILE_FLAG_OVERLAPPED,
NULL
);
打开串口,执行到这里时,_hCommHandle的值为INVALID_HANDLE_VALUE(0xffff ffff),根据函数的帮助文件知道可以利用...MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0,...NULL );
theErr.Format("%s",lpMsgBuf);//theErr显示为“拒绝访问”
出错原因:因为之前的串口仍被占用还没有释放,互换串口后,再次初始化串口时会失败(拒绝访问)...解决办法:每次使用完串口后,将其关闭,再次使用时(针对串口互换的这种情况),就不会出错了。