VB6做项目如何做整体规划?旧项目如果维护、改进?

Rainee Rainee 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
偶以前是搞VC的,近期接到一个任务维护一个旧的VB程序,是从VB4作起的,经历了VB4、VB5、VB6,可能是由于以前受限太多,所以现在有如下几点毛病(我认为是毛病,与VC做比较),请各位大侠指点:怎样做最正确、怎样做最适合我的情况

1、使用了很多、相当多的全局变量,并且很多是定义在Modules里面,生存期太长,并且容易发生命名冲突、交叉访问,没有保护级别,交叉使用了也难以发现;

2、变量命名不规范,很多如xpm、ypm、xpm0、ypm0一类的命名,难以记忆,同时VB6的辅助功能似乎也不够,鼠标指向某个变量时无变量类型、注释等信息显示;

3、辅助功能的另一个缺陷就是不支持鼠标中轴,上下翻页时托拽的好辛苦;

4、窗体和Modual命名也不规范,不知道能不能改名;

5、有个Main的入口和一个主Form,Mian调用Form后一直在后台循环,监视两个通讯口状态(据说是防止响应通讯事件的延迟),虽然使用DoEvents,但是CPU资源的占用一直是100%;在VC里常用的方法是使用一个辅助线程“等待”通讯事件,基本上不用担心响应延迟,这里似乎应该也可以这样做,不过水平有限,暂时还没查到相关资料;

6、需要兼容98与2K,不知道需要注意哪些方面?现在偶就知道Sleep在98下不能使用;

7、绘图控件似乎只能操作Interge,而我需要Double操作,最少也是long吧……有效位数不能太少;

8、界面挺难看,没有色彩没有动态窗体,有些Form里使用的背景色灰度还不同;

9、Project窗口里有太多Form,不知道如何把它们分门别类放置,Modules想来也会有类似情况;

10、只有个别几个结构类型,没有类,转换到类体系工作量似乎太大了,心里有点虚;


另外提几个问题:
1、不知道在FormP里定义的Private变量,如何给FormP调用的子FormS使用?

2、如果Form里定义了Public变量,Unload Form后哪些变量是否还存在?如果是其他类型呢?有的书上说Public和Static一样,不理解……

3、无论在哪里自定义一个类型(结构)后,其他地方都可以使用它定义变量么?不需要C++里的头文件或者声明么?

4、如果把这个项目移植到VC.net是否实际:工作量会增加么?兼容性会受影响么?看一些资料提到VC.net的许多新特性,和C++越来越相似了,如可以赋初值(可以使用时才定义)、可以继承类(而不是实现接口)等,感觉蛮亲切的。

5、据说VB调用API容易引发错误,而且On Error无法捕捉到,所以易死机,不知道是否确有其事?

先问这么多了,各位大佬给诊诊吧,谢了先!

...全文
评论 32
收藏 已收藏
分享
返回顶部
Rainee
VB基础类 7,788 成员 197,583 内容