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后的一些感触,如果那里不对,还请各位大师 拍砖

  • 相关阅读:
    POJ 3140 Contestants Division (树dp)
    POJ 3107 Godfather (树重心)
    POJ 1655 Balancing Act (树的重心)
    HDU 3534 Tree (经典树形dp)
    HDU 1561 The more, The Better (树形dp)
    HDU 1011 Starship Troopers (树dp)
    Light oj 1085
    Light oj 1013
    Light oj 1134
    FZU 2224 An exciting GCD problem(GCD种类预处理+树状数组维护)同hdu5869
  • 原文地址:https://www.cnblogs.com/wanglinglong/p/2266400.html
Copyright © 2011-2022 走看看