前几天II型隧道广告由于安装位置由边墙调整到中墙,这一改动相当于列车到来的方向发生了逆转,程序需要改动才能适应这种情况。worker_1983网友曾留言说,“还好地铁只是朝一个方向开.如果反着开可就有意思了”,可谓一针见血,不过对我们来说不是有意思,麻烦大了。

在改动方面,其实对软件来说改动量不大,仅对下载的数据有一定调整,由于早期的程序用VB开发(唉,已经几年没用VB编写程序了,代码看起来很亲切),倒是在哪里插入这段代码费了我不少时间(由此想到了一个流传甚广的小故事,一个有名的工程师解决电机问题后,面对别人的质问时说,画一根线一美元,知道在哪里画需要999美元)。

程序很简单,如下:

  1. Public Sub PicData(bytData() As Byte)
  2. … …
  3. '------------------------------------------------
  4. Const intDataSize = 6144 'G_PicWidth * 24
  5. Dim bytData3(intDataSize) As Byte
  6. Dim bytData6(intDataSize) As Byte
  7. On Error GoTo ToExit '打开错误陷阱
  8. '第3块数据缓存
  9. CopyMemory bytData3(0), bytData(intDataSize * 3), intDataSize
  10. '第5块数据移到第3块位置
  11. CopyMemory bytData(intDataSize * 3), bytData(intDataSize * 5), intDataSize
  12. '第6块数据移到第5块数据位置
  13. CopyMemory bytData(intDataSize * 5), bytData(intDataSize * 6), intDataSize
  14. '第3块数据移动到第6块位置
  15. CopyMemory bytData(intDataSize * 6), bytData3(0), intDataSize
  16. '------------------------------------------------
  17. … …
  18. Exit Sub
  19. '----------------
  20. ToExit:
  21. 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相关推荐

  1. qinyu.blog.51cto.com里的好文章,比尔盖茨

    世纪枭雄比尔盖茨的王者传奇 儿时,他便躁动不安,顶着梳不顺的头发,在竞技中缕缕获胜.少年英才没有机会慢慢成长,21岁,他创办了微软,从此走上IT业的颠峰之路,垄断了13年的财富榜首:32年后,他离开微 ...

  2. http://blog.51cto.com/wbb827/1175634

    http://linux.chinaitlab.com/List_100.html 本文转自  wbb827  51CTO博客,原文链接:http://blog.51cto.com/wbb827/11 ...

  3. http://blog.51cto.com/wutengfei/1917288

    linux日常管理常用命令--w 命令:w(linux管理员最常用的命令) [root@cacti ~]# w 14:45:41 up 2 min,  2 users,  load average: ...

  4. Tomcat原理详解和各种集群的实现(转自:http://harisxiong.blog.51cto.com/7513022/1304746)

    标签:apache Java Tomca mod_proxy 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://harisxiong ...

  5. http://4526621.blog.51cto.com/4516621/1343369

    http://4526621.blog.51cto.com/4516621/1343369 转载于:https://www.cnblogs.com/eebb/p/3814883.html

  6. 铁钉的blog地址 http://nails.blog.51cto.com

    http://nails.blog.51cto.com 转载于:https://blog.51cto.com/nailcn/175303

  7. 来自http://oldboy.blog.51cto.com/2561410/1308647 有趣的企业shell实战编程题:

    #coding=gb2312 import random s = raw_input("请输入你的名字:") str = range(100) num = 1 while(s != ...

  8. http://jackielieu.blog.51cto.com/5586910/1161944

    来源:http://jackielieu.blog.51cto.com/5586910/1161944 说明,JAVA发送手机短信,流传有几种方法:(1)使用webservice接口发送手机短信,这个 ...

  9. IT人员必看的几个网站 http://gzsean.blog.51cto.com

    IT技术开发综合类 适合人群:只适合软件开发者 技术开发最全面的论坛,里面可以遇到很多牛人,版面也很全,什么J2EE,.NET啊,该有的全上,在这里基本上可以提出任何问题,人气也是最旺的,不过一般提出 ...

最新文章

  1. 【pytorch】pytorch-backward()的理解
  2. spring cloud config将配置存储在数据库中
  3. 什么时候用redis_C++传参什么时候用引用, 什么时候用指针?
  4. jQuery-easyui和validate表单验证实例
  5. Less学习笔记 -- Mixins(混合)一
  6. Android—开发过程中的相关注意事项
  7. shields 徽标_到处都有平面徽标
  8. leetcode170. 两数之和 III - 数据结构设计
  9. 区域卫生数据用于临床疗效分析的可用性研究
  10. 维度退化(数据仓库)
  11. Entity Framework 6+ 连接Mysql
  12. android root 技术,android root实践
  13. RTDS学习笔记——网口连接
  14. matlab DFA算法计算Hurst指数
  15. 厦门大学电子科学系夏令营
  16. 安卓应用加固壳判断java厂商_使用frida来hook加固的Android应用的java层
  17. Cinder调度之Filter介绍
  18. 计算机专业裁合词英语,计算机专业英语的构词方法
  19. Logstash:使用 dissect 导入 CSV 格式文档
  20. web(vue) 简单使用 mixpanel 网页埋点

热门文章

  1. 15-07-06 定闹钟
  2. 私有变量访问/延后执行代码块
  3. [原创]有关PHP 中 MVC的个人见解
  4. Windows下使用VS2008+CUDA3.0开发的详细配置 (Setup CUDA 3.0 on VS2008 in Windows)
  5. 设置、获得对话框中 编辑框控件 EDIT 的内容
  6. CreateFile创建文件 writeFile 向文件中写入东西
  7. AndroidStudio_android中实现图片动态设置图片的位置以及图片动态缩放---Android原生开发工作笔记234
  8. 解决文件上传_使用FastDfs上传头像上传不成功的问题---SpringCloud Alibaba_若依微服务框架改造---工作笔记002
  9. 微服务架构工作笔记001---认识Service Mesh
  10. IntelliJ Idea学习笔记007---IntelliJ Idea2018 1.6破解