void fsend(unsigned char *pt,int cnt)
{
CMSComm m_mscomm;
CByteArray bytOutArr;
COleVariant varOut;
//CMSComm *pMSComm = (CMSComm *)pDlg->GetDlgItem(IDC_MSCOMM1);
while (cnt--)
{
bytOutArr.Add(*pt);
//varOut=COleVariant(bytOutArr);
//while (rs_out(*pt) == -1);
m_mscomm.SetOutput(COleVariant(bytOutArr));// 这一行为什么报错执行一次可以,执行下个数组出错.
pt++;
}
}
{
CMSComm m_mscomm;
CByteArray bytOutArr;
COleVariant varOut;
//CMSComm *pMSComm = (CMSComm *)pDlg->GetDlgItem(IDC_MSCOMM1);
while (cnt--)
{
bytOutArr.Add(*pt);
//varOut=COleVariant(bytOutArr);
//while (rs_out(*pt) == -1);
m_mscomm.SetOutput(COleVariant(bytOutArr));// 这一行为什么报错执行一次可以,执行下个数组出错.
pt++;
}
}
{
CMSComm m_mscomm; // 这个应该是乘员变量吧,或者说还有打开端口等其他操作
CByteArray bytOutArr; while (cnt--)
{
bytOutArr.Add(*pt);
pt++;
}
m_mscomm.SetOutput(COleVariant(bytOutArr));// 发送一次就可以了
}另外从效率考虑也可以这样复制
void fsend(unsigned char *pt,int cnt)
{
CMSComm m_mscomm; // 这个应该是乘员变量吧,或者说还有打开端口等其他操作
CByteArray bytOutArr; bytOutArr.SetSize( cnt );
memcpy( bytOutArr.GetData(), pt, cnt );
m_mscomm.SetOutput(COleVariant(bytOutArr));// 发送一次就可以了
}
或者更简单:
void fsend(unsigned char *pt,int cnt)
{
CMSComm m_mscomm; // 这个应该是乘员变量吧,或者说还有打开端口等其他操作
m_mscomm.SetOutput(COleVariant((LPCSTR)pt));// 发送一次就可以了
}