串口操作求助
xp,vc6.0下
如下代:
g_hComm = CreateFile( "COM1 ", GENERIC_READ | GENERIC_WRITE, 0, NULL,
OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
GetCommState(g_hComm, &dcb);
dcb.BaudRate = CBR_19200;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
SetCommState(g_hComm, &dcb);
SetCommMask(g_hComm, EV_RXCHAR);
SetupComm(g_hComm, 1024, 1024);
PurgeComm(g_hComm, PURGE_TXABORT | PURGE_RXABORT |
PURGE_TXCLEAR | PURGE_RXCLEAR );
aa = WriteFile(g_hComm, SendData, 4, &dwBytesWrote, &ol);
if(!aa)
{
ErrorCode = GetLastError();
}
在,能打串口(g_hComm = 0x00000794),但WriteFile出(ErrorCode = 6(The handle is invalid. )),什?
[解决办法]
打开没成功
[解决办法]
帮顶
[解决办法]
顶
[解决办法]
还是加一个是不是==NULL的判断吧
[解决办法]
你既然需要异步Io(CreateFile指定FILE_FLAG_OVERLAPPED),就应该初始化ol,它说的是
ol.hEvent句柄无效