解决方案 »

  1.   

    CString转char* 
    eg:
    CString strTemp;
    strTemp.Getbuffer(strTemp.GetLength());
    试试看,我没试过。实在不行就传char型数组吧,这个肯定没问题。
      

  2.   

    用char * 和CString转换就可以,应该不算麻烦吧。
      

  3.   

    对,网上都是这么讲的,我试试。还有就是,数据发出去好发,直接sio_write就行,但是,数据来了,怎么办呢。像MSCOMM,数据来了触发comm事件,pcomm可以触发中断,但具体怎么用呢,求相关代码看看啊
      

  4.   

    对,网上都是这么讲的,我试试。还有就是,数据发出去好发,直接sio_write就行,但是,数据来了,怎么办呢。像MSCOMM,数据来了触发comm事件,pcomm可以触发中断,但具体怎么用呢,求相关代码看看啊我记得PCOMM有一条sio_read函数的呀,你每隔一段时间就读一下并采用循环的方式不就OK啦?或者,我记得有一条sio_peek函数应该是可以监视是否有数据的到来,一旦有数据到来,你就Read一次不就OK了?
      

  5.   

    我用的是mscomm控件来实现的。
    http://wenku.baidu.com/link?url=MI_nbx-20mVqyfynJ86SFXtYP8nzf7VCMtpJlUpd3JPhGCz2WHuq4EjBxFBUWFha7FdU8X8T2A9dGRlYsHTlZH3WhB_vMBKkrMzo_tYHawu
    串口发送函数:CByteArray Array;
    CString str;
    GetCommandFrame('R');
    Array.RemoveAll();
    Array.SetSize(5);//根据实际需要设置大小
    for(int i=0;i<5;i++)
    {
    Array.SetAt(i,command_frame[i]);//command_frame是我的全局变量
    myComm.SetOutput(COleVariant(Array));
    m_info+="握手参数已发送完毕\r\n";
    Sleep(10);