这几天搞了点c/s结构的程序设计, 由于ASP用得比较熟练,所以VB6.0自然成为我首选的开发工具. 在学习过程中,我结合自己的经验总结下VB中的一些高级应用,并且体会这种应用给我们所带来的好处. 一、模块 (Module) 在VB中,模块会优先执行,其实说白了,模块就象是全局的过程和函数调用.这是初步的提高代码可复用性的途径。我想有经验的ASP(VBSCRIPT,以后都只用VBScript来写Asp程序)程序员都用过<!--#Include file=""-->这条语句吧,这对提高代码的可复用性是比较方便的,在VB里模块就完成了这个功能.值得注意的是在模块中可以定义Sub Main() 过程,并且在启动里面可以让程序从Main()过程进入.这有点象c,c++中的main()函数. 不过模块的代码可重用级别还是停留在过程,函数调用上. 二、类模块 在VB中,可以建立类模块.类模块类似于ASP中的类.我想有经验的Asp程序员应该都有自己的类库吧.一般情况下我们怎么在ASP中引用自己的类库呢?对,还是include,只要把类文件包含进来就行了. 在调用的时候只要 Set xxx= new ClassName 就行了.这个和ASP中也是一样的.用类模块有什么好处呢? 因为使用类可以定义一些公用的方法和过程,可以将代码的可重用行达到一个更高的高度. 三、ActiveX技术 可能大家会想,无论是用模块还是类模块,可能很多功能都会在下一个项目用到.如果这个时候我们需要那些功能的话,可以直接把类模块和模块代码考到Vb项目中.在ASP中,我们只要把类代码做成文件,然后在其他应用include进来就行了.但有一个问题,那就是代码的封装行.因为不论是类模块还是模块,或者ASP中的写有类的.asp文件,代码可以被人看并加以修改.有没有办法能使代码不让人看到呢?答案是肯定的,这个就是ActiveX控件技术. ActiveX 的优点在于可以不同的语言编写ActiveX控件,只要符合约定的规范就行,然后可以被其他语言调用.而且代码是编译好了的.这个对于ASP来说,可以提高运行速度.好了,废话少说,下面看看给出一个实际使用的例子吧: 1.首先建立一个ActiveX dll工程,然后把名字写成TestDll.在类模块里的代码为:
Option Explicit Private mdbl_augend As Double Private mdbl_addend As Double Public Property Get augend() As Double Public Property Let augend(ByVal vNewValue As Double) Public Property Get addend() As Double End Property Public Property Let addend(ByVal vNewValue As Double) Public Function Plus()
Private Sub Command1_Click() Set objSum = New Sum objSum.augend = 10.52 objSum.addend = 382.41 Result = objSum.Plus MsgBox Result Set objSum = Nothing End Sub 3.ASP调用TestDll.dll文件. ASP调用dll文件和vb也差不多.刚才vb调用时我们要添加一个引用来找到dll文件.而ASP需要注册以后才能调用.所以先建立一个setup.bat文件,里面写如下代码:Regsvr32.exe TestDll.dll 如果这个bat文件不在TestDll.dll的同级目录下面,你需要加上TestDll.dll的绝对路径. 或者直接在运行里敲Regsvr32.exe E:\website\work\dll\TestDll.dll.这样TestDll.dll就注册了,下面我们写个文件来测试一下:
<% 怎么样,网页上是不是显示了392.93呢? 这样ASP就调用了这个TestDll.dll文件了.
Dim objSum Set objSum = Server.CreateObject("TestDll.Sum") objSum.augend = 10.52 objSum.addend = 382.41 Result = objSum.Plus Response.Write Result Set objSum = Nothing %> 四、API调用. VB的强大之处就是可以调用WinAPI,这样原本VB完成不了的功能都可以通过API来完成. 要调用API首先也需要引用它.VB里提供了一个API Show的小工具给我们使用.这样可以省去很多调用API的麻烦.要调用API,首先要建立模块,在模块里申明调用的API,下面我写一个小程序,就是让窗口始终显示在最上面.调用API代码如下:
Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
然后我们在窗体里加如下代码:
Private Sub Form_Load() Dim Success As Long Success = SetWindowPos(Me.hwnd, HWND_TOPMOST, 10, 0, 0, 0, Flags) End Sub 研究了下VB后发现,其实VB还是提供了一些封装的技术的.比如模块,类模块,还有ActiveX,并且VB能够调用API来弥补自身功能的不足.最主要的是VB简单易学,而且还提供了很多数据库操作的控件. 由于本人用VB用得比较少,有错误之处还请指出. http://www.ncycglass.com/blog 有兴趣的看看本人的blog,一同探讨. |
文章来源:http://computer.mblogger.cn/wucountry/posts/39641.aspx