if(m_m.GetPortOpen())
{
m_m.SetPortOpen(false);
}
m_m.SetCommPort(4);
    m_m.SetInputMode(1);
m_m.SetInBufferSize(1024);
m_m.SetOutBufferSize(512);
m_m.SetSettings("9600,n,8,1");
m_m.SetRThreshold(2);
if(!m_m.GetPortOpen())
    {
m_m.SetPortOpen(true);
}
        m_m.SetInputLen(0);
        m_m.GetInput();
上面初始下面接收
VARIANT hc;
COleSafeArray zu;
long len,k;
BYTE data[200];
CString cstr;
if(m_m.GetCommEvent()==2)
{
                  hc=m_m.GetInput();
zu=hc;
len=zu.GetOneDimSize();
for(k=0;k<len;k++)
{
                    zu.GetElement(&k,data+k);
  char b=*(char*)(data+k);
  cstr.Format("%c",b);
  m_rtext+=cstr;  
}
 UpdateData(false);
}
能发送不能接收,用了模拟串口让程序与虚拟串口通信。

解决方案 »

  1.   

            VARIANT hc;
    COleSafeArray zu;
    long length,k;
    Byte data[1024];
    CString cstr;

    if(m_m.GetCommEvent()==2
                  {
    hc=m_MSComm.GetInput();
    zu=hc;
    length=zu.GetOneDimSize();
    for(k=0;k<length;k++)
    zu.GetElement(&k,data+k); for(k=0;k<length;k++)
    {
    char a=* (char *)(data+k);

    cstr.Format("%c",a);

     m_rtext+=cstr;
    }
                    UpdateData(false); 
               }