求助VC6 MSComm控件串口通信问题。。
vc MSComm控件串口通信时,通过调试接收缓存区是有数据的,但用GetInput()无法获取接收数据?如果这段代码没问题的话,一般可能是哪里出问题了?
接收数据代码如下:
void CJsDlg::OnOnCommMscomm1()
{
// TODO: Add your control notification handler code here
VARIANT m_input1;
COleSafeArray m_input2;
long length,i;
BYTE data[1024];
CString strJS,str;
int nn=m_MSComm2.GetCommEvent();
str.Format("%d",nn);
AfxMessageBox(str);
if(m_MSComm2.GetCommEvent()==2)//接收缓冲区内有字符
{
m_input1=m_MSComm2.GetInput();//读取缓冲区内的数据
m_input2=m_input1;//将VARIANT型变量转换为ColeSafeArray型变量
length=m_input2.GetOneDimSize();//确定数据长度
for(i=0;i<length;i++)
m_input2.GetElement(&i,data+i);//将数据转换为BYTE型数组
for(i=0;i<length;i++)//将数组转换为Cstring型变量
{
BYTE a=* (char *)(data+i);
strJS.Format("%c",a);
m_strJS+=strJS;
}
UpdateData(FALSE);//更新编辑框内容
}
}
[ 本帖最后由 zsq408 于 2011-11-10 11:32 编辑 ]