VS2013编写一个串口调试工具中的函数问题。 15

voidCCommTestDlg::OnBnClickedButtonSend(){//TODO:在此添加控件通知处理程序代码UpdateData(true);//读取编... void CCommTestDlg::OnBnClickedButtonSend()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(true); //读取编辑框内容
m_com1.put_Output(COleVariant(m_EditSend));//发送数据
m_EditSend.Empty(); //发送后清空输入框
UpdateData(false); //更新编辑框内容 }
以上这个是发送按钮的函数。但是出错,错误画红线的地方是COleVariant和Empty。com1是Cmscomm控件的变量名。

void CCommTestDlg::OnCommMscomm1()
{ // TODO: 在此处添加消息处理程序代码
static unsigned int cnt=0;
VARIANT variant_inp;
COleSafeArray safearray_inp;
long len,k;
unsigned int data[1024]={0};
byte rxdata[1024]; //设置 BYTE 数组
CString strtemp;
if(m_mscomm.get_CommEvent()==2) //值为 2 表示接收缓冲区内有字符
{ cnt++;
variant_inp=m_mscomm.get_Input(); //读缓冲区消息
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++) //将数组转换为 CString 型变量
{
strtemp.Format(_T("%x"),*(rxdata+k));
m_EditReceive+=strtemp;
CString temp=_T("\r\n"); //换行
m_EditReceive+=temp; }
}
UpdateData(FALSE); //更新编辑框内容
}
以上是接收函数。出错线画在两个“+=”上。

求大神帮助。
展开
 我来答
zhanjxcom
2015-05-02
知道答主
回答量:25
采纳率:0%
帮助的人:7.7万
展开全部

只能回答第二个,CEdit 那个是不是添加的变量时候继承类型搞错了,应该用value类型的,

。后面那个问题也一样。第一个同问,奇怪的是,我在VS2010可以运行。。代码一样。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
意法半导体(中国)投资有限公司
2023-06-12 广告
单片机编程是指使用单片机编程语言,如C语言,来编写单片机的程序代码,以控制单片机的行为。这种技术在电子工程、计算机科学和电子通信等领域中被广泛应用。单片机编程的主要任务是设计和实现单片机的程序,包括定义单片机的指令系统、编写程序代码、处理器... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
测控道
2015-04-24 · 专注于测试测量,信息与自动化控制软件领域
测控道
采纳数:325 获赞数:368

向TA提问 私信TA
展开全部
用SerialPort组件很简单,还用mscomm干嘛。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-04-23
展开全部
感觉你的 代码 是 VC 6 的
是看 龚建伟 的教程 吗?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式