| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 601 人关注过本帖
标题:[求助]如何将问题里VB代码功能转化为TC3.0环境下的功能?
只看楼主 加入收藏
shackle
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-1-14
收藏
 问题点数:0 回复次数:4 
[求助]如何将问题里VB代码功能转化为TC3.0环境下的功能?

请各位看看如何将以下VB代码功能转化为TC3.0环境下的功能?

VB中Byte和Variant变量,用了CLng函数,在VB中, CLng返回long, -2,147,483,648 至 2,147,483,647,小数部分四舍五入。

TC3.0中我用unsigned char 代替VB的Byte变量
但VB中的Variant变量我不知道该如何替代,下面我目前使用long是不对的
请问该如何解决?
请各位支招啊!
先谢了!!!

VB代码功能:
----------------------------------
Dim InDataBuf(0 To 14) As Byte
Dim SumData As Variant
-----------
........
SumData = CLng(InDataBuf(0)) + CLng(InDataBuf(1)) + CLng(InDataBuf(2)) + CLng(InDataBuf(3)) + CLng(InDataBuf(4)) + CLng(InDataBuf(5)) + CLng(InDataBuf(6)) + CLng(InDataBuf(7)) + CLng(InDataBuf(8)) + CLng(InDataBuf(9)) + CLng(InDataBuf(10)) + CLng(InDataBuf(11)) + CLng(InDataBuf(12)) + CLng(InDataBuf(13)) + InDataBuf(14)
Debug.Print ("SumData = "); SumData
If (SumData And 255) = 0 Then
...........
End If
--------------------------------------------------------------

TC3.0环境下代码:
-----------------------------------
unsigned char InDataBuf[15];
long SumData; //使用long型替代是错误的

SumData = long(InDataBuf[0])+long(InDataBuf[1])+long(InDataBuf[2])+long(InDataBuf[3])+long(InDataBuf[4])+long(InDataBuf[5])+long(InDataBuf[6])+long(InDataBuf[7])+long(InDataBuf[8])+long(InDataBuf[9])+long(InDataBuf[10])+long(InDataBuf[11])+long(InDataBuf[12])+long(InDataBuf[13])+long(InDataBuf[14]);
printf("\n SumData = %ld \n ",SumData);
搜索更多相关主题的帖子: VB代码 环境 变量 Byte 
2006-01-17 17:34
bullbatLT
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-1-13
收藏
得分:0 

没有问题啊?使用long型替代结果都是一样的。


2006-01-19 16:17
shackle
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-1-14
收藏
得分:0 
能读数据了
就是出现丢包现象比较严重
2006-01-20 11:59
bullbatLT
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-1-13
收藏
得分:0 
丢包是什么意思

2006-01-25 15:43
bullbatLT
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-1-13
收藏
得分:0 

我不知道你说的丢包是什么意思。但是我想可能是网络数据传输用的信息包。当然在数据传输时候要求数据不能丢失。我又研究了一下,发现如果数组中的数据是0-255之间的整数结果是没有问题的,但如果是小数,那么VB中CLng函数返回的值是四舍五入的,而在TC下long函数返回的却没有四舍五入,这样就导致结果不一致。


2006-01-25 16:28
快速回复:[求助]如何将问题里VB代码功能转化为TC3.0环境下的功能?
数据加载中...
 
   



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

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