2 回答
TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊
| 12345678910111213141516171819202122232425262728293031323334 | 寫6個(gè) 異步延遲等待1秒肯定能寫完 然后判斷 重疊結(jié)構(gòu)判斷寫的數(shù)據(jù) 跟 真正寫的數(shù)據(jù) 是不是相等 bool CComControl::Send(BYTE* pBuff,DWORD dwBytesSend){ if (!PortOpened()) return false; BOOL wRes; DWORD dwBytesW; wRes = WriteFile(m_hCom,pBuff,dwBytesSend,&dwBytesW,&m_ovWrite); if (!wRes) { if (GetLastError() == ERROR_IO_PENDING) { WaitForSingleObject(m_ovWrite.hEvent,1000); wRes = GetOverlappedResult(m_hCom,&m_ovWrite,&dwBytesW,false); if (!wRes || dwBytesW !=dwBytesSend) { ClearInOut(); return false; } } else { ClearInOut(); return false; } } return true;} |
TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊
寫6個(gè) 異步延遲等待1秒肯定能寫完 然后判斷 重疊結(jié)構(gòu)
判斷寫的數(shù)據(jù) 跟 真正寫的數(shù)據(jù) 是不是相等
bool CComControl::Send(BYTE* pBuff,DWORD dwBytesSend)
{
if (!PortOpened()) return false;
BOOL wRes;
DWORD dwBytesW;
wRes = WriteFile(m_hCom,pBuff,dwBytesSend,&dwBytesW,&m_ovWrite);
if (!wRes)
{
if (GetLastError() == ERROR_IO_PENDING)
{
WaitForSingleObject(m_ovWrite.hEvent,1000);
wRes = GetOverlappedResult(m_hCom,&m_ovWrite,&dwBytesW,false);
if (!wRes || dwBytesW !=dwBytesSend)
{
ClearInOut();
return false;
}
}
else
{
ClearInOut();
return false;
}
}
return true;
}
添加回答
舉報(bào)

