“找不到出路的”vb6.0
标题详解:想发表一篇关于接触vb6.0后的心得,可是在博客分类中却找不到vb的类别! 故出此标题!
工作需要的原因,我接触了vb6.0 ,刚开始离开.net心情比较复杂,因为不知道vb语法关键字,因为不知道vb6.0一些快捷键,甚至因为不知道如何打开工程!
一系列的问题都萦绕着我,但是有些时候不是你不接受,而是必须接受,而且还有很快的融入!
刚开始的几天,在vb里面不停的写 if() else 、在调用方法结尾习惯性的顺带“;”、 方法参数声明忘记描写值类型还是引用类型、调试时总按在了F10上!当然这都是习惯,慢慢写多了,就好了!下面谈谈vb6.0的一些“动手性”的问题!
- vb没有框架而言,没有明确的层次框架,一个小的功能可以写一个单独的工程,此工程可以不依赖其它工程独立运行,正因为如此,代码复用这点就做的很差,一个团队,一个小功能完成,自己写自己的功能,可能大家都需要用同一个功能,但是每个人却各自写了相同功能的方法.vb中分为模块,类模块,窗体,所以窗体的代码量也是很大!当然它也有它的好处,如果一个功能很单一,那么加载项目(本身vb6.0加载工程的速度比vs2010快很多。很多。)或者是调试都很方便, 而vs2010就整个项目都必须全部运行,才能调试起,开发也是一样,层次分明,功能独立,代码复用。当然这也看一个项目开始框架搭建的是否符合产品,每个产品在不同层次上可能代码量不同,有的更加注重业务逻辑层,有的就更加注重外观层的描写,所以不同产品,前期的框架设计很重要!
- vb6.0 不像vs2010 ,很多dll或者控件的引用必须需要手动引用,就像我们在C#中操作底层数据库只需要用using System.Data.SqlClient; 那么在当前类就可以
SqlConnection conn = new SqlConnection("连接串"); SqlCommand cmd = new SqlCommand(strsql, conn); SqlDataReader dr = cmd.ExecuteReader(); SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds); conn.Close();
但是在vb中,需要添加ADO(Mrcrosoft ActiveX Data Objects )引用,而且很多版本,(一般都用高版本)机器高低版本不同,可能导致不同环境同代码出现问题
代码编写
Dim Rs as ADODB.RecordSet Dim conn as ADODB.Connection conn.Open //这是一种读取方式 Rs.open strsql,conn,adopenKeyset,adlockReadOnly //vb中还提供了一种读取 用连接执行 conn .Execute(strsql)
- vb6.0事件的事件 和 数组分配储存空间
vb6.0 控件中申明事件 Event Method(pram)
在实际运用中 当前类可用调用此方法 也可用RaiseEvent Method() 来抛出事件,那么在别的类或者窗体中写 ControlName_ Method (此例子是控件中申明了此函数,然后引用控件的窗体中来写此方法)
Vb6.0 A类中申明事件 Event Method(pram)
抛出事件 RaiseEvent Method(pram),B类中使用时 需要声明 Private withEvent objM as A,然后在B类里面就可以建一个objM_Method()的方法
ReDim Preserve Arr() 在过程级中声明动态数组并分配存储空间,简单来说:重新定义arr()数组的个数
- 在vb6.0中读取系统API的一些应用 (这也是看到项目中有就留意了下)
Private Declare Function GetSystemDefaultLangid Lib "kernel32" Alias "GetSystemDefaultLangIDs" () As Integer '
以上语句是得到当前用户操作系统的语言,Function 后面的函数是系统kernel32.Dll的函数,可是我们需要用自己的名称,那么就可以用Alias,用我们自己名称:GetSystemDefaultLangIDs
一般常用的系统API的dll有:
Kerndl32.dll、低层操作系统函数,例如管理内存和资源的函数
User32.dll、Window管理函数,例如负责处理消息、计时器、菜单和通讯
GDI32.dll 图形设备接口库、包括负责设备输出函数,例如负责绘图、显示上下文和字体管理的函数
-------------以上是自己的一些个人见解, 可能微不足道,可能不足一提,但是这也是接触了三个多月vb后的一些感触,如果那里不对,还请各位大师 拍砖