VB6做项目如何做整体规划?旧项目如果维护、改进?
偶以前是搞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无法捕捉到,所以易死机,不知道是否确有其事?
先问这么多了,各位大佬给诊诊吧,谢了先!