一、MSComm和VARIANT
VC6自带的串口ActiveX MSComm的对象使用SetOutput()和GetInput()方法实现发送和接收。
这两个函数的参数都是VARIANT类型。
void CMSComm::SetOutput(const VARIANT& newValue)
VARIANT CMSComm::GetInput()
VARIANT CMSComm::GetInput()
1.
发送过程:
VARIANT其实是一个C++结构类型,COleVariant类型对VARIANT做了进一步的封装和扩展,提供了许多新的功能和操作方法,支持OLE自动化,且更容易向其数据成员填入数据。
VARIANT其实是一个C++结构类型,COleVariant类型对VARIANT做了进一步的封装和扩展,提供了许多新的功能和操作方法,支持OLE自动化,且更容易向其数据成员填入数据。
由于COleVariant类型由VARIANT派生而来,因此将COleVariant类型的变量传递给SetOutput函数更为方便。
另外,SetOutput的参数newValue类型必须是存放字节类型数据的动态数组。因此,可以利用Visual C++提供CByteArray类型来构造COleVariant类型的对象,并将其传递给SetOutput函数。
对CByteArray类型变量的操作相对来说要容易的多,比如其成员函数SetSize可用来设置动态数组的大小,下标操作符[]可用来为其元素赋值等等。
下面的程序代码可实现将存放在缓冲区strBuf中的100个字节的数据通过通讯控件发送出去:
下面的程序代码可实现将存放在缓冲区strBuf中的100个字节的数据通过通讯控件发送出去: