只是基于对话框的小程序,我不懂win32API,只好用MSCOMM那个控件,打算从编辑框输入字符,然后通过串口从另外一个串口读出来,但是单字节和双字节字符上有问题,听说可以用字符数组解决,具体怎么做呢(问题1)。
就把那个字符串赋值给一个字符数组就可以了么?
这个控件好像只能发送和接收VARIANT类型的数据,这种数据和编辑框的cstring类型能不能匹配呢,这到底是种什么样子的结构啊?
哪位大虾有这方面的例子可以参考一下说的不,尤其是这几个变量之间的转换。

解决方案 »

  1.   

    win32 api有一组函数支持串口通讯,不必使用组件
      

  2.   

    to findmyself(乘风破烂)兄: 可以发一分给小弟??
      [email protected]
      

  3.   

    结合网上的代码我这样写接收字符的程序,但是我还是不太明白它这里运用的方法
    我想按照这样转换的方法编写发送的程序,需不需要这么麻烦呢?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);