只是基于对话框的小程序,我不懂win32API,只好用MSCOMM那个控件,打算从编辑框输入字符,然后通过串口从另外一个串口读出来,但是单字节和双字节字符上有问题,听说可以用字符数组解决,具体怎么做呢(问题1)。
就把那个字符串赋值给一个字符数组就可以了么?
这个控件好像只能发送和接收VARIANT类型的数据,这种数据和编辑框的cstring类型能不能匹配呢,这到底是种什么样子的结构啊?
哪位大虾有这方面的例子可以参考一下说的不,尤其是这几个变量之间的转换。
就把那个字符串赋值给一个字符数组就可以了么?
这个控件好像只能发送和接收VARIANT类型的数据,这种数据和编辑框的cstring类型能不能匹配呢,这到底是种什么样子的结构啊?
哪位大虾有这方面的例子可以参考一下说的不,尤其是这几个变量之间的转换。
[email protected]
我想按照这样转换的方法编写发送的程序,需不需要这么麻烦呢?VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed.
CString strtemp;
if(m_comm3.GetCommEvent()==2)
variant_inp=m_comm3.GetInput(); //读缓冲区
safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
for(k=0;k<len;k++) //将数组转换为Cstring型变量
{
BYTE bt=*(char*)(rxdata+k); //字符型
strtemp.Format("%c",bt); //将字符送入临时变量strtemp存放
m_accept=strtemp+m_accept; //加入接收编辑框对应字符串
}//事件值为2表示接收缓冲区内有字符
// TODO: Add your control notification handler code here
UpdateData(FALSE);