程序是按照龚建伟老师的例程写的,好简单,发送编辑框的关联量是m_strEditTXData,接收编辑框的关联量是m_strEditRXData。望大虾帮忙!
void CSCommTestDlg::OnComm()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048];
CString strtemp;
if(m_ctrlComm.GetCommEvent()==2)
{ variant_inp=m_ctrlComm.GetInput();
safearray_inp=variant_inp;
len=safearray_inp.GetOneDimSize();
for(k=0;k<len;k++)
{
safearray_inp.GetElement(&k,rxdata+k);
}
for(k=0;k<len;k++)
{
BYTE bt=*(char*)(rxdata+k);
strtemp.Format("%c",bt);
m_strEditRXData += strtemp;
}
}
UpdateData(FALSE);
}void CSCommTestDlg::OnButtonManualsend()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_ctrlComm.SetOutput(COleVariant(m_strEditTXData));
}
void CSCommTestDlg::OnComm()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048];
CString strtemp;
if(m_ctrlComm.GetCommEvent()==2)
{ variant_inp=m_ctrlComm.GetInput();
safearray_inp=variant_inp;
len=safearray_inp.GetOneDimSize();
for(k=0;k<len;k++)
{
safearray_inp.GetElement(&k,rxdata+k);
}
for(k=0;k<len;k++)
{
BYTE bt=*(char*)(rxdata+k);
strtemp.Format("%c",bt);
m_strEditRXData += strtemp;
}
}
UpdateData(FALSE);
}void CSCommTestDlg::OnButtonManualsend()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_ctrlComm.SetOutput(COleVariant(m_strEditTXData));
}
解决方案 »
- 本人建一vc技术交流群欢迎大家加入讨论
- sdk richedit创建问题
- 简单问题,在MFC下如何得到本地时间?
- 已知一个记录某个字段的值,CRecordSet类怎样定位到该纪录(不用sql)
- MFC会不会自动释放GDI资源
- 有沈阳的兄弟吗?,请进来看一眼。
- 我的程序是基于对话框的,我要在主对话框出来之前,弹出一个验证口令的对话框,口令通不过的话主对话框就不要出来了,怎么做?
- 高分求解:显示多种文档的方法!(会的高手多re几个,我好多给分)10
- 请问虚拟打印机的Render-Plugin怎么从UI-plugin中取得属性设置信息。
- 哪里有类似画笔那样简单功能的源代码?送粉!!!!!
- socket中缓冲区如何设置,请大侠们帮忙解析一下。谢谢!!
- 疑问error C2511: 'Create' : overloaded member function 'int (class CWnd *)' not found in 'CSplashWnd'
m_ctrlComm.SetCommPort(1);//选择com1
m_ctrlComm.SetInputMode(1);//输入方式为二进制
m_ctrlComm.SetInBufferSize(1024);
m_ctrlComm.SetOutBufferSize(512);
m_ctrlComm.SetSettings("9600,n,8,1");
if(!m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(TRUE);
m_ctrlComm.SetRThreshold(1);
m_ctrlComm.SetInputLen(0);
m_ctrlComm.GetInput();
if(m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(FALSE);
m_ctrlComm.SetPortOpen(FALSE);
m_ctrlComm.SetCommPort(1);//选择com1
m_ctrlComm.SetInputMode(1);//输入方式为二进制
m_ctrlComm.SetInBufferSize(1024);
m_ctrlComm.SetOutBufferSize(512);
m_ctrlComm.SetSettings("9600,n,8,1");
if(!m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(TRUE);
m_ctrlComm.SetRThreshold(1);
m_ctrlComm.SetInputLen(0);
m_ctrlComm.GetInput();//
我这里已经可以显示了
,确定你的电脑 com1 能不能用。也许你的电脑只可以用com3或者com2,com4呢
楼主,调出来了吗。我的这句话总出问题,我是严格按照书上写的,可以帮忙指导下吗,不知道是哪里出现的问题, 并且我也看到上面说m_strEditRXData是cstring的,为什么我的错误说他们类型不统一。m_strEditRXData 是不是需要在哪里定义下啊?