这里主要说的是收发数据,依然是用 VARIANT 结构来传递数据,但是使用 VARIANT 的 bstrVal (BSTR类型) 成员来传递,而不再使用safearray,这就简单了许多。下面发一下接收数据和发送数据的代码。
假定有两个EDIT控件,分别用来输入数据和显示发送的数据:EditInStr(发送至串口的数据)和EdiOutStr(从串口接收的数据)。
接收数据:
void CGPSDlg::OnCommMscomm1()
{
// TODO: 在此处添加消息处理程序代码
VARIANT varComm;
if(mscomm.get_CommEvent() == 2) //事件值为2表示接收缓冲区内有字符
{
varComm = mscomm.get_Input(); //读缓冲区
EditOutStr += varComm.bstrVal;
UpdateData(FALSE); //变量->编辑框
EditOutCtrl.LineScroll(EditOutCtrl.GetLineCount()); //滚动到最后一行
}
}
发送数据:
void CGPSDlg::OnBnClickedButtonSend()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE); //编辑框->变量
VARIANT varComm;
varComm.vt = VT_BSTR;
varComm.bstrVal = EditInStr.AllocSysString();
mscomm.put_Output(varComm);
}
有些东西这里没有解释,可以到网上搜一下,哈哈,强大的互联网