如何让VB调用外部的DLL
2个回答
展开全部
要声明一个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查找某一函数及其相 关数据结构和常数的声明,并复制到自己的程序中。
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查找某一函数及其相 关数据结构和常数的声明,并复制到自己的程序中。
展开全部
VB中进行32位动态库的声明时,函数名是大小写敏感的。在获得了需要的动态连接 库之后,就可以在VB中进行调用了。但是,由于VB不能验证应用程序传递到动态连接库中的参 数值是否正确,因此VB程序中大量的API调用可能会降低整个应用程序的稳定性,也会增加以 后维护的难度。所以,决定在VB程序中直接调用API函数时要慎重,但适当的使用API调用确实 能够有效地提高VB程序的性能。这之间的平衡需要编程人员根据实际情况来掌握。下面就具体介绍一下在VB中调用API函数时需要做的工作。
要声明一个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查找某一函数及其相 关数据结构和常数的声明,并复制到自己的程序中。
在vb中调用dll的方法
http://wenku.baidu.com/link?url=wYp78imnde_GNgkHpCVZEluVMzP6ha0CrFCPTCstM8ZRJhN2eI5GV-Ve152aRW6DQerRm6TNKchsX-QF9sQ0ouhS9xY3tdp_oGzip7SyG7_
要声明一个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查找某一函数及其相 关数据结构和常数的声明,并复制到自己的程序中。
在vb中调用dll的方法
http://wenku.baidu.com/link?url=wYp78imnde_GNgkHpCVZEluVMzP6ha0CrFCPTCstM8ZRJhN2eI5GV-Ve152aRW6DQerRm6TNKchsX-QF9sQ0ouhS9xY3tdp_oGzip7SyG7_
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询