http://blog.51cto.com/yfsoft/324291
前几天II型隧道广告由于安装位置由边墙调整到中墙,这一改动相当于列车到来的方向发生了逆转,程序需要改动才能适应这种情况。worker_1983网友曾留言说,“还好地铁只是朝一个方向开.如果反着开可就有意思了”,可谓一针见血,不过对我们来说不是有意思,麻烦大了。
在改动方面,其实对软件来说改动量不大,仅对下载的数据有一定调整,由于早期的程序用VB开发(唉,已经几年没用VB编写程序了,代码看起来很亲切),倒是在哪里插入这段代码费了我不少时间(由此想到了一个流传甚广的小故事,一个有名的工程师解决电机问题后,面对别人的质问时说,画一根线一美元,知道在哪里画需要999美元)。
程序很简单,如下:
- Public Sub PicData(bytData() As Byte)
- … …
- '------------------------------------------------
- Const intDataSize = 6144 'G_PicWidth * 24
- Dim bytData3(intDataSize) As Byte
- Dim bytData6(intDataSize) As Byte
- On Error GoTo ToExit '打开错误陷阱
- '第3块数据缓存
- CopyMemory bytData3(0), bytData(intDataSize * 3), intDataSize
- '第5块数据移到第3块位置
- CopyMemory bytData(intDataSize * 3), bytData(intDataSize * 5), intDataSize
- '第6块数据移到第5块数据位置
- CopyMemory bytData(intDataSize * 5), bytData(intDataSize * 6), intDataSize
- '第3块数据移动到第6块位置
- CopyMemory bytData(intDataSize * 6), bytData3(0), intDataSize
- '------------------------------------------------
- … …
- Exit Sub
- '----------------
- ToExit:
- End Sub
程序修改编译后,信心满满的给硬件人员进行下载调试了,过了近一天的时间,一问硬件技术人员,说下载数据后,画面异常,不知道是硬件问题还是软件问题。只好把笔记本带到测试室,和硬件人员一起调试确认。就这么几句代码,费了我不少时间,我才发现问题的所在,第一我发现6144*6一定大于3万2千多,意味做对integer整型有可能溢出,第二错误处理直接退出了,没有提示(这种做法真危险!),第三定义intDataSize没有定义类型,默认也就是integer了。
把Const intDataSize = 6144 代码修改为Const intDataSize As Long = 6144。
问题搞定。幸好修改的代码不多,否则这点错误还真要命,此外得到教训是,调试程序时最好把程序错误处理暂时关掉(或错误存在文件里,不过这个时候够呛想到去看)。
本文转自yefanqiu51CTO博客,原文链接:http://blog.51cto.com/yfsoft/323468,如需转载请自行联系原作者
http://blog.51cto.com/yfsoft/324291相关推荐
- qinyu.blog.51cto.com里的好文章,比尔盖茨
世纪枭雄比尔盖茨的王者传奇 儿时,他便躁动不安,顶着梳不顺的头发,在竞技中缕缕获胜.少年英才没有机会慢慢成长,21岁,他创办了微软,从此走上IT业的颠峰之路,垄断了13年的财富榜首:32年后,他离开微 ...
- http://blog.51cto.com/wbb827/1175634
http://linux.chinaitlab.com/List_100.html 本文转自 wbb827 51CTO博客,原文链接:http://blog.51cto.com/wbb827/11 ...
- http://blog.51cto.com/wutengfei/1917288
linux日常管理常用命令--w 命令:w(linux管理员最常用的命令) [root@cacti ~]# w 14:45:41 up 2 min, 2 users, load average: ...
- Tomcat原理详解和各种集群的实现(转自:http://harisxiong.blog.51cto.com/7513022/1304746)
标签:apache Java Tomca mod_proxy 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://harisxiong ...
- http://4526621.blog.51cto.com/4516621/1343369
http://4526621.blog.51cto.com/4516621/1343369 转载于:https://www.cnblogs.com/eebb/p/3814883.html
- 铁钉的blog地址 http://nails.blog.51cto.com
http://nails.blog.51cto.com 转载于:https://blog.51cto.com/nailcn/175303
- 来自http://oldboy.blog.51cto.com/2561410/1308647 有趣的企业shell实战编程题:
#coding=gb2312 import random s = raw_input("请输入你的名字:") str = range(100) num = 1 while(s != ...
- http://jackielieu.blog.51cto.com/5586910/1161944
来源:http://jackielieu.blog.51cto.com/5586910/1161944 说明,JAVA发送手机短信,流传有几种方法:(1)使用webservice接口发送手机短信,这个 ...
- IT人员必看的几个网站 http://gzsean.blog.51cto.com
IT技术开发综合类 适合人群:只适合软件开发者 技术开发最全面的论坛,里面可以遇到很多牛人,版面也很全,什么J2EE,.NET啊,该有的全上,在这里基本上可以提出任何问题,人气也是最旺的,不过一般提出 ...
最新文章
- 【pytorch】pytorch-backward()的理解
- spring cloud config将配置存储在数据库中
- 什么时候用redis_C++传参什么时候用引用, 什么时候用指针?
- jQuery-easyui和validate表单验证实例
- Less学习笔记 -- Mixins(混合)一
- Android—开发过程中的相关注意事项
- shields 徽标_到处都有平面徽标
- leetcode170. 两数之和 III - 数据结构设计
- 区域卫生数据用于临床疗效分析的可用性研究
- 维度退化(数据仓库)
- Entity Framework 6+ 连接Mysql
- android root 技术,android root实践
- RTDS学习笔记——网口连接
- matlab DFA算法计算Hurst指数
- 厦门大学电子科学系夏令营
- 安卓应用加固壳判断java厂商_使用frida来hook加固的Android应用的java层
- Cinder调度之Filter介绍
- 计算机专业裁合词英语,计算机专业英语的构词方法
- Logstash:使用 dissect 导入 CSV 格式文档
- web(vue) 简单使用 mixpanel 网页埋点
热门文章
- 15-07-06 定闹钟
- 私有变量访问/延后执行代码块
- [原创]有关PHP 中 MVC的个人见解
- Windows下使用VS2008+CUDA3.0开发的详细配置 (Setup CUDA 3.0 on VS2008 in Windows)
- 设置、获得对话框中 编辑框控件 EDIT 的内容
- CreateFile创建文件 writeFile 向文件中写入东西
- AndroidStudio_android中实现图片动态设置图片的位置以及图片动态缩放---Android原生开发工作笔记234
- 解决文件上传_使用FastDfs上传头像上传不成功的问题---SpringCloud Alibaba_若依微服务框架改造---工作笔记002
- 微服务架构工作笔记001---认识Service Mesh
- IntelliJ Idea学习笔记007---IntelliJ Idea2018 1.6破解