zoukankan      html  css  js  c++  java
  • “找不到出路的”vb6.0

      标题详解:想发表一篇关于接触vb6.0后的心得,可是在博客分类中却找不到vb的类别! 故出此标题!

         工作需要的原因,我接触了vb6.0 ,刚开始离开.net心情比较复杂,因为不知道vb语法关键字,因为不知道vb6.0一些快捷键,甚至因为不知道如何打开工程!

    一系列的问题都萦绕着我,但是有些时候不是你不接受,而是必须接受,而且还有很快的融入!

      刚开始的几天,在vb里面不停的写 if() else  、在调用方法结尾习惯性的顺带“;”、 方法参数声明忘记描写值类型还是引用类型、调试时总按在了F10上!当然这都是习惯,慢慢写多了,就好了!下面谈谈vb6.0的一些“动手性”的问题!

    1. vb没有框架而言,没有明确的层次框架,一个小的功能可以写一个单独的工程,此工程可以不依赖其它工程独立运行,正因为如此,代码复用这点就做的很差,一个团队,一个小功能完成,自己写自己的功能,可能大家都需要用同一个功能,但是每个人却各自写了相同功能的方法.vb中分为模块,类模块,窗体,所以窗体的代码量也是很大!当然它也有它的好处,如果一个功能很单一,那么加载项目(本身vb6.0加载工程的速度比vs2010快很多。很多。)或者是调试都很方便, 而vs2010就整个项目都必须全部运行,才能调试起,开发也是一样,层次分明,功能独立,代码复用。当然这也看一个项目开始框架搭建的是否符合产品,每个产品在不同层次上可能代码量不同,有的更加注重业务逻辑层,有的就更加注重外观层的描写,所以不同产品,前期的框架设计很重要!
    2. 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)
    
    1. 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()数组的个数

    1. 在vb6.0中读取系统API的一些应用 (这也是看到项目中有就留意了下)

      Private Declare Function GetSystemDefaultLangid Lib "kernel32" Alias "GetSystemDefaultLangIDs" () As Integer ' 

    以上语句是得到当前用户操作系统的语言,Function 后面的函数是系统kernel32.Dll的函数,可是我们需要用自己的名称,那么就可以用Alias,用我们自己名称:GetSystemDefaultLangIDs

    一般常用的系统APIdll有:

    Kerndl32.dll、低层操作系统函数,例如管理内存和资源的函数

    User32.dllWindow管理函数,例如负责处理消息、计时器、菜单和通讯

    GDI32.dll  图形设备接口库、包括负责设备输出函数,例如负责绘图、显示上下文和字体管理的函数

    -------------以上是自己的一些个人见解, 可能微不足道,可能不足一提,但是这也是接触了三个多月vb后的一些感触,如果那里不对,还请各位大师 拍砖

  • 相关阅读:
    poj3180 The Cow Prom
    洛谷P1434 滑雪
    洛谷P1199 三国游戏
    洛谷P1230 智力大冲浪
    洛谷P1012 拼数
    洛谷P1106 删数问题
    bzoj3538 [Usaco2014 Open]Dueling GPS
    Android(java)学习笔记134:Android数据存储5种方式总结
    Android(java)学习笔记133:Eclipse中的控制台不停报错Can't bind to local 8700 for debugger
    Android(java)学习笔记132:eclipse 导入项目是提示:某些项目因位于工作空间目录中而被隐藏。
  • 原文地址:https://www.cnblogs.com/wanglinglong/p/2266400.html
Copyright © 2011-2022 走看看