当计算机开机时间很长时,比如30天以后,gettickcount()的返回值为负数,可能是超过了长整数范围了,怎么办?
解决方案 »
- 关于VB导入 DBF数据问题
- 请教:如何将录制的无声视频和音频同步成一个视频文件
- 使用ado获得access中空表的字段数据类型
- 请问用VB 生成工程时,怎样指定为 发行版
- 用webbrowser控件打开网页出现脚本错误,求救!
- vb 操作INI文件的问题?
- 请问如何清空treeview里的所有内容,我要添加新的树,全天在线立即给分
- 急!!!为什么我的控件在设计时调整好了位置,到了使用时就乱了。来者有分!!(分不够再加)
- vb图标 我的图标是*.ico 为什么说无效
- 帮忙!如何将文件读出/写入另一台有口令的机器的共享目录
- ocx的问题,为什么我在vb中新建的ocx已用regsvr32 注册了,用html还是调用 不起来,但只用在vb中启用了工程,就可以了
- 梁浩 这个名字怎样?
编程工具:VB6
问题:我做一个24小时运行的软件,需要精确到1ms的计时,我用timeGetTime函数,但是timegettime定义为无符号long,vb中long为有符号整数,这样程序在运行到24天多时候,就会出现溢出错误!也就是timegettime的结果大于2,147,483,647时溢出。我定义timegettime函数为double或者single,程序报出“表达式太复杂”错误!定义timegettime为Currency,在不同的计算机上运行的结果不同,有的延时1ms变成10000ms,我苦!恳请诸位专家给一个解决方法!
水平: 中级(王辉)
陈波的意见:
定义一个全局变量整数i作为高位计数器,每个i表示一定的时间如:1,000,000,000作
为进制单位
(实现:当timegettime取数大于等于1,000,000,000时,i=i+1,用余数作为
timegettime的新的计时起点)
下面,再通过用i作为数据的高位进行运算即可。
YoungCat的意见:
在定义变量时,不要说明其类型。在第一次使用变量前,把它转换成 dec 类型。例如:
dim aaaa '定义
aaaa=cdec(aaaa) '转换类型
aaaa=45*4185+142/441+48756/544*sin(20) '使用变量
因为C里面整数溢出了,运算还是可以继续的如果时间差要超过的,那么请你每天算一次(每天定时作一次也对性能影响不大吧)