| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 344 人关注过本帖
标题:请教几个编程问题
取消只看楼主 加入收藏
喜鹊王子
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2012-12-25
结帖率:89.74%
收藏
已结贴  问题点数:10 回复次数:1 
请教几个编程问题
以下摘自某VC++串口通信的程序:
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048],bt;//设置BYTE数组
CString stremp,data;
float i=0;
variant_inp=m_ctrlComm.GetIput();//读缓冲区
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++)
     {
         bt=*(char*)(rxdata+k);//字符型
         strtemp.Format("%2X",bt);//将字符送入临时变量strtemp存放
         data+=strtemp;//将字符送入临时变量data存放
         m_dy1=data;
         m_dy=(float)(bt/10.0);
         m_data[num]=m_dy;
         num=num+1;
         ondraw();//在下文,此处略
      }
...
...
以上红色的的部分都不太理解:
1.safearray_inp.GetOneDimSize()   //?????????????
2.safearray_inp.GetElement(&k,rxdata+k) //?????????????
3.bt=*(char*)(rxdata+k)  //?????????????
4.strtemp.Format("%2X",bt)  //?????????????
5.data+=strtemp  //?????????????
6.m_dy=(float)(bt/10.0)  //?????????????
搜索更多相关主题的帖子: 编程 缓冲区 
2013-01-06 20:10
喜鹊王子
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2012-12-25
收藏
得分:0 
回复 2楼 yuccn
len=safearray_inp.GetOneDimSize();//得到有效数组长度,这个数组里面的元素是 每次采集到的数据 还是单个数据的位?比如我第一次采集到的是2V,第二次是2.3V......,那么这个数组的第一个数据是2、第二个数十2.3吗?要是这样的话,那后面的data+=strtemp该如何理解呢?

路漫漫其修远兮,吾将上下而求索。
2013-01-13 15:05
快速回复:请教几个编程问题
数据加载中...
 
   



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

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