如何让VB调用外部的DLL?

如题所述

要声明一个DLL过程,首先需要在代码窗口的"通用(General)"部分增加一个Declare语句。如果该过程返回一个值,应将其声明为
Function:
   Declare Function publicname Lib "libname" [Alias "alias"] [([[ByVal] variable [As type] [,[ByVal] variable [As type]]...])] As Type
   如果过程没有返回值,可将其声明为Sub:
   Declare Sub publicname Lib "libname" [Alias "alias"] [([[ByVal] variable [As type] [,[ByVal] variable [As type]]...])]
  缺省情况下,在标准模块中声明的DLL过程,可以在应用程序的任何地方调用它。在其它类型的模块中定义的DLL过程则是模块私有的,必须在它们前面声明Private关键字,以示区分。下面分别介绍声明语句的各个组成部分。
  (一)、指定动态库:
  Declare语句中的Lib子句用来告诉Visual Basic如何找到包含过程的.dll文件。 如果引用的过程属于Windows核心库(User32、Kernel32或GDI32),则可以不包含文件扩展名,如:
   Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long
   对于其它动态连接库,可以在Lib子句指定文件的路径:
   Declare Function lzCopy Lib "c:/windows/lzexpand.dll" _
   (ByVal S As Integer, ByVal D As Integer) As Long
如果未指定libname的路径,Visual Basic将按照下列顺序查找该文件:
  ①.exe文件所在的目录
  ②当前目录
  ③Windows系统目录
  ④Windows目录
  ⑤Path环境变量中的目录
  下表中列出了常用的操作系统环境库文件。
  动态链接库描述
  Advapi32.dll高级API服务,支持大量的API(其中包括许多安全与注册方面的调用)
  Comdlg32.dll通用对话框API库
  Gdi32.dll图形设备接口API库
  Kernel32.dllWindows32位核心的API支持
  Lz32.dll32位压缩例程
  Mpr.dll多接口路由器库
  Netapi32.dll32位网络API库
  Shell32.dll32位ShellAPI库
  User32.dll用户接口例程库
  Version.dll版本库
  Winmm.dllWindows多媒体库
  Winspool.drv后台打印接口,包含后台打印API调用。
  对于Windows的系统API函数,可以利用VB提供的工具API Viewer查找某一函数及其相 关数据结构和常数的声明,并复制到自己的程序中。
温馨提示:答案为网友推荐,仅供参考
相似回答