| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1620 人关注过本帖
标题:初学者请问这段里面有错误么?
只看楼主 加入收藏
gorefiend
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-4-24
收藏
 问题点数:0 回复次数:6 
初学者请问这段里面有错误么?
void CWaveShowDlg::OnComm()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed.
CString strtemp;
if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
{ ////////以下你可以根据自己的通信协议加入处理代码
variant_inp=m_ctrlComm.GetInput(); //读缓冲区
safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
for(k=0;k<len;k++) //将数组转换为Cstring型变量
{
BYTE bt=*(char*)(rxdata+k); //字符型
strtemp.Format("%c",bt); //将字符送入临时变量strtemp存放
m_strRXData+=strtemp; //加入接收编辑框对应字符串
}
}
UpdateData(FALSE); //更新编辑框内容
}

再网上找了个手把手教如何进行串口通讯的贴子,前面几步都能顺利运行,就是到了把代码复制粘贴(初学,别笑话我啊:( )的地方,贴进去运行显示有error
请高手给看看,是代码有问题么?
搜索更多相关主题的帖子: 缓冲区 
2006-04-26 12:34
gorefiend
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-4-24
收藏
得分:0 
error如下,新人看不太懂。。。

--------------------Configuration: WaveShow - Win32 Debug--------------------
Compiling...
WaveShowDlg.cpp
e:\documents and settings\administrator\桌面\wave\waveshowdlg.cpp(4) : warning C4652: compiler option 'Generate Browser Info' inconsistent with precompiled header; current command-line option will override that defined in the precompiled header
E:\Documents and Settings\Administrator\桌面\Wave\WaveShowDlg.cpp(259) : error C2065: 'lt' : undeclared identifier
E:\Documents and Settings\Administrator\桌面\Wave\WaveShowDlg.cpp(259) : error C2146: syntax error : missing ')' before identifier 'k'
E:\Documents and Settings\Administrator\桌面\Wave\WaveShowDlg.cpp(259) : error C2059: syntax error : ';'
E:\Documents and Settings\Administrator\桌面\Wave\WaveShowDlg.cpp(259) : error C2059: syntax error : ')'
E:\Documents and Settings\Administrator\桌面\Wave\WaveShowDlg.cpp(259) : error C2059: syntax error : ')'
E:\Documents and Settings\Administrator\桌面\Wave\WaveShowDlg.cpp(260) : error C2146: syntax error : missing ';' before identifier 'safearray_inp'
E:\Documents and Settings\Administrator\桌面\Wave\WaveShowDlg.cpp(260) : error C2065: 'amp' : undeclared identifier
E:\Documents and Settings\Administrator\桌面\Wave\WaveShowDlg.cpp(260) : error C2143: syntax error : missing ')' before ';'
E:\Documents and Settings\Administrator\桌面\Wave\WaveShowDlg.cpp(260) : error C2059: syntax error : ')'
E:\Documents and Settings\Administrator\桌面\Wave\WaveShowDlg.cpp(261) : error C2146: syntax error : missing ')' before identifier 'k'
E:\Documents and Settings\Administrator\桌面\Wave\WaveShowDlg.cpp(261) : error C2059: syntax error : ';'
E:\Documents and Settings\Administrator\桌面\Wave\WaveShowDlg.cpp(261) : error C2059: syntax error : ')'
E:\Documents and Settings\Administrator\桌面\Wave\WaveShowDlg.cpp(262) : error C2143: syntax error : missing ';' before '{'
E:\Documents and Settings\Administrator\桌面\Wave\WaveShowDlg.cpp(264) : error C2065: 'quot' : undeclared identifier
E:\Documents and Settings\Administrator\桌面\Wave\WaveShowDlg.cpp(264) : error C2143: syntax error : missing ')' before ';'
E:\Documents and Settings\Administrator\桌面\Wave\WaveShowDlg.cpp(264) : error C2143: syntax error : missing ';' before '%'
E:\Documents and Settings\Administrator\桌面\Wave\WaveShowDlg.cpp(264) : error C2143: syntax error : missing ';' before ','
E:\Documents and Settings\Administrator\桌面\Wave\WaveShowDlg.cpp(264) : error C2059: syntax error : ')'
执行 cl.exe 时出错.
2006-04-26 12:40
smilesmile
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-4-25
收藏
得分:0 
for(k=0;k<len;k++)
这个不能有两个;吧

初来贵地,多多帮助
2006-04-27 08:25
cyberkdll
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-4-25
收藏
得分:0 
You should modify the error at first,the error is simple,just like that lose '(' ')'or ';',and some undedeclared indentifier....

----------------------------------------------- Cyberkdll
2006-04-27 09:10
gorefiend
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-4-24
收藏
得分:0 
谢谢两位,我在原作者网站上复制粘贴过去就不报错了,呵呵
我回去会仔细对比两边的问题,估计是复制粘贴多次以后漏掉了某些符号 :)

不过还有个问题
就是按照步骤作
有一行代码如下:
m_ctrlComm.SetInputModel(1); //1:表示以二进制方式检取数据
这行运行时候提示出错,意思好像是没有SetInputModel这种设定,把这行设置为注释就可以运行
但是请问到底有没有设定检取数据方式的参数呢?

[此贴子已经被作者于2006-4-27 18:49:02编辑过]

2006-04-27 18:46
gorefiend
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-4-24
收藏
得分:0 
晕了。。。我自己看单词看明白了
SetInputModel估计是作者写错了。。。应该是SetInputMode,嘿嘿
我还挺聪明的嘛
2006-04-27 18:50
蟹命
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-9-16
收藏
得分:0 
兄弟,太感谢你啦!!!!!!!!!!!!
!!!!!
我对这个问题郁闷很久了
2007-09-16 16:23
快速回复:初学者请问这段里面有错误么?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024098 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved