小弟现在做一个串口通讯的程序,现在又遇到了一个问题,向大家求助
我使用了一个MSComm控件,响应串口事件的函数是:
void CCommWizardDlg::OnOnCommCommctrl() 
{
// TODO: Add your control notification handler code here
//VARIANT variant_inp;
COleVariant myVar;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed.
CString strtemp;
if(bReceive)
{
if(m_Com.GetCommEvent()==2)     //事件值为2表示接收缓冲区内有字符
{
myVar.Attach(m_Com.GetInput());
//variant_inp = m_Com.GetInput();   //读缓冲区
safearray_inp = myVar;           //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
m_Edit.AppendData(rxdata,len);
m_ProbeVoltA=(unsigned char*)safearray_inp.parray->pvData;
UpdateData(FALSE);           //更新编辑框内容
}我在主对话框里新建了一个编辑框,给它建了一个CString型的变量m_ProbeVoltA,我希望在上面的函数中使用
m_ProbeVoltA=(unsigned char*)safearray_inp.parray->pvData;语句给m_ProbeVoltA赋值,然后对应的编辑框就会显示改变后的数值。(该语句是我自己加的,程序之前没有问题)这条语句编译,连接时没有问题,但在生成BuildExecute时会蹦出警告:CommWizard.exe遇到问题需要关闭,我们对此引起的不便表示抱歉。如果您正处于进程当中,信息有可能丢失.....
我该怎样解决这个问题呢?或者说我想把从串口的到的数据从那个rxdata数组中传到我建立的编辑框中以便观察数据,应该怎样操作?如果我给编辑框建立一个CEdit类型的变量是不是就会没问题呢?