在vb中调用dll的方法

合集下载

VB6.0怎么调用带参数的DLL?

VB6.0怎么调用带参数的DLL?

VB6.0怎么调用带参数的DLL?
vb6.0中可以创建DLL文件,也可以调用DLL文件,该怎么调用呢?下面我们就来看看详细的教程。

•软件名称:
•msdn for vb6.0(vb6 msdn) 精简中文版
•软件大小:
•20.6MB
•更新时间:
•2014-02-06立即下载
1、桌面上双击VB图标,打开Visual Basic。

2、打开的VB窗口中,选择文件---->新建工程选项。

3、新建工程窗口中,选择ActiveX DLL选项。

4、编辑窗口中,输入dll文件的代码,具体内容由个人决定。

5、单击文件---->保存工程,将dll工程保存。

6、单击文件---->生成dll,生成一个dll文件。

7、单击工程---->引用选项,如下图所示。

8、引用窗口中,单击浏览按钮。

9、选择要引用的DLL文件,单击打开按钮。

10、DLL文件就被引用到应用程序中了,单击确定按钮。

11、接下来就可以在应用程序中,插入组件,书写代码使用DLL
文件了。

以上就是VB6.0调用带参数的DLL的教程,希望大家喜欢,请继续关注脚本之家。

在vb中生成dll文件并且调用的方法.

在vb中生成dll文件并且调用的方法.

在vb中生成dll文件并且调用的方法.一、DLL制作1.打开新建工程2.选择“Active DLL”,单击“打开”按钮。

3.单击打开按钮后,系统在工程中添加一类模块。

4.为方便对DLL的引用可以改一下名称,如将类模块的名称改为Fraction。

5.在本类模块中添加代码如下。

Option ExplicitPublic NumPublic DenPublic Sub Add(NUm2, Den2)Num = NUm2 + Den2End SubPublic Sub Sbt(NUm2, Den2)Num = NUm2 - Den2End SubPublic Sub Mul(NUm2, Den2)Num = NUm2 * Den2End SubPublic Sub Div(NUm2, Den2)Num = NUm2 / Den2End Sub6.为与其他工程相区别,可将本工程命名为“Math”。

7.生成DLL文件。

二、DLL引用1.建立一个普通窗体。

2.添加引用。

3.在程序中添加以下代码。

Option ExplicitPublic Frac As New Fraction Private Sub Command1_Click() Frac.Add Val(Text1.Text), Val(Text2.Text) Text3.Text = Frac.NumEnd SubPrivate Sub Command2_Click() Frac.Sbt Val(Text1.Text), Val(Text2.Text) Text3.Text = Frac.NumEnd SubPrivate Sub Command3_Click() Frac.Mul Val(Text1.Text), Val(Text2.Text) Text3.Text = Frac.NumEnd SubPrivate Sub Command4_Click() Frac.Div Val(Text1.Text), Val(Text2.Text) Text3.Text = Frac.NumEnd SubPrivate Sub Command5_Click()Text1 = ""Text2 = ""Text3 = ""End Sub 4.运行程序。

在vb中调用dll的方法

在vb中调用dll的方法

1 制作好DLL之后,就可以用VB调用它,实现VB调用C程序。

VB程序要使用DLL中的函数,首先必须要有特殊的声明,用Declare声明语句在窗体级或模块级或全局模块的代码声明段进行声明,将动态链接库中的函数声明到VB中,供VB程序调用。

语句格式为:Declare Sub 过程名Lib [ Alias " 别名]([ByVal 参数AS类型]),或为Declare Function函数名Lib [Alias " 别名]([ByVal 参数AS类型])AS类型在声明中首先用Declare 关键字表示声明DLL中的函数。

在C语言中有的函数类型为VOID,它表示不具有返回值,则必须用关键字Sub将其声明成过程。

有的函数具有返回值,则必须用关键字Function将其声明成函数,并且在声明语句的最后要用AS关键字指明函数返回值的类型。

例如上面的ADD.DLL在VB中就可以声明为:Decl are Function ADD Lib “c:\ADD.dll” (ByVal X AS Integer, ByVal Y AS Integer ,ByVal filein asstring)AS Integer通过此声明语句将函数ADD声明到VB中,便可直接调用。

2、dll文件中的函数好像是C语言写的,// 函数名:int __stdcall GetMacNo(int *MacNo)// 功能:获取卡机的卡机号(单机时)// 参数: MacNo[0]-被读出的卡机号// 返回值:0-成功,// 2-PC接收超时,// 3-应答错误dll的文件名是COMM232.dll函数的形参int *MacNo是指针吗?在VB中应该怎么声明和调用该函数?VB里也可以定义指针吗?问题补充:vb调用dll文件中的函数我是会的,但这儿的形参有一个星号才不知是怎么一回事,我是这样声明的对吗?Public Declare Function GetMacNo Lib "COMM232.dll" (ByVal MacNo As Integer) As Integer又应该怎么调用呢?要先定义一个指针的变量再传给*MacNo还是要怎么做?都说了MacNo是被读出的卡机号,那么就是传址的了。

VB6.0调用C# Dll解决方法

VB6.0调用C# Dll解决方法

VB6.0调用C# Dll解决方法在工作中遇到了在VB6.0的程序里要调用C#的Dll的问题,显然这两个开发环境属于不同的平台。

在网上拜读了几位大师的文章后,在实际试验中还是会发生这样那样的问题,最后还是实现了预期效果,在此我把我的实验步骤和注意事项分享如下,希望对需要之人有所帮助:实验环境:C#dll的创建使用的是VS2010;VB6.0一、C#部分1.用C#创建一个TestVB项目(VS2010);2.所有在VB6中要使用的方法都必须通过继承接口实现,并且为public的(非常重要,没有继承接口实现的方法,在VB6.0里面无法调用);3.接口和类都需要加入属性Guid;Guid通过VS2010自带的工具得到:4.在VS2010的DOS命令工具提示框中运行:sn -k C:\myKey.snk<回车>在C盘根目录下生成一个强名称文件:myKey.snk(注意这个强名称文件的名字可以自己定义,我暂定为myKey.snk)5. 右击项目,选择属性,打开并编辑项目的属性对话框在Application tab中,点击Assembly Information按钮,在打开的对话框中选中“make Assembly COM-Visible”(重要)COM-Visible”(重要)。

在Signing Tab中引入上一步创建的强名称文件myKey.snk不为1.0.*,应该是一个具体的值;7.编译这个项目,生成dll文件。

到此为止,C#的Dll部分已经准备完毕了。

二、VB6部分1. VB6调用环境必须安装.Net framework 4.0或以上版本,最好是4.0(和VS2010相同的framework);2. 复制dll文件进入VB6环境的目标文件夹,例如D:根目录, D:\TestCom.dll3. 在Dos命令窗口用regasm命令注册这个dll文件生成.tlb文件regasm D:\TestCom.dll /tlb:D:\TestCom.tlb /codebase在D:\将会生成一个TestCom.tlb文件4.在Dos命令窗口用gacutil命令添加Dll文件到GAC中(全局程序集缓存),这样这个Dll文件在这个PC中就可以随处使用gacutil /I D:\TestCom.dll5.在VB6项目中,把生成的.tlb文件加入到项目(References)6. VB6代码即可调用tlb文件Private Sub Command1_Click()Dim a As New TestVB.Cryptmand1.Caption = a.Encrypt("aa", "bb")End Sub注意:以上3,4步,需要在VB6环境的C:\WINDOWS\system32下面有相应的exe 文件才可运行;第4步,可以省去;还要说明的是,当转移这个VB6生成的exe程序(这个VB6可执行文件引用了C#的dll)到另外一台电脑上的时候,需要把这个C# Dll文件一同Copy到那台电脑上,并且重新执行第3步的注册生成tlb文件的工作,否则这个exe程序无法运行。

用VB调用VC编写的DLL

用VB调用VC编写的DLL

这些函数名要用做 VB 中声明时的别名。
如果声明时不带别名会出现“Dll 调用约定错误”。
VB 中编写如下代码运行即可:
Option Explicit
Private
Declare
Function
FuncInDll
Lib
"E:\Computer
Science\dll\liudll\dll_withLibAndH.dll" Alias "_FuncInDll@12" (ByVal a As Long,
如何用 VB 调用 VC 编写的 DLL
——DLL 内函数调用采用别名 首先用 C++编写: dll_withlibAndH.h 如下: extern "C" __declspec(dllexport) int __stdcall FuncInDll (int a);
dll_withlibAndH.cpp 如下: #include <objbase.h> #include <iostream.h> #include "dll_withLibAndH.h"//看到没有,这就是我们增加的头文件
创建一个.bat 文件并输入:
Cl/c dll_withLibAndH.cpp
Link/dll dll_withLibAndH.obj 之后运行此批处理文件即生成 dll_withLibAndபைடு நூலகம்.dll 文件。用 Dll 函数查看器(Viewdll
程序)查看此 dll 文件内的函数,此处为_FuncInDll@12(12 为此函数的参数字节数),
ByVal b As Long, ByVal c As Long) As Long

VB调用大漠dll的3种方法!回复有源码有vb例子(解决占CPU高的问题..

VB调用大漠dll的3种方法!回复有源码有vb例子(解决占CPU高的问题..

VB调用大漠dll的3种方法! 回复有源码有vb例子(解决占CPU高的问题)=========================================================== ====================='/forum.php?mod=viewthread&tid=118 820&extra=page%3D1'大漠dll下载地址'1 大漠用VB dm = CreateObject(dm.dmsoft)'引用里选上dm.dllPrivate Sub Command1_Click()Dim dm As ObjectDim verSet dm = CreateObject("dm.dmsoft")ver = dm.ver()If Len(ver) = 0 ThenMsgBox "当前大漠插件未能正常调用"ElseMsgBox "当前大漠插件DM.dll版本是:" & verEnd IfEnd Sub' 第一种方法奇卡 cpu 占用高'========================================================== ======================'2 '在VB6里面新建一个对象:dmsoft对象' 引用里选上dm.dll' 通用里新建一个 dmsoft对象'其他插件也可以这样调用 Dim b As New dmsoft 只需要把dmsoft 换成别的插件的类名Dim b As New dmsoft'在VB6里面新建一个对象:dmsoft对象Private Sub Command1_Click()本帖隐藏的内容b.SetWindowText Me.hWnd, "你好" '修改VB的窗口标题b.MoveTo 100, 100End SubPrivate Sub Command2_Click()jb = b.GetForegroundWindow()MsgBox jbEnd SubPrivate Sub Command3_Click()Form1.Caption = "找图"'dm.FindPic 0, 0, 800, 600, App.Path + "\开始.bmp", 0, 0.9, 0, X, yCall b.FindPic(0, 0, 800, 600, "C:\开始.bmp", 0, 0.9, 0, x, y)If x >= 0 Thenb.MoveTo x, y '移动鼠标'dm.LeftClick '移动单击MsgBox "找图找到!"ElseMsgBox "找图没找到!"End IfEnd Sub'========================================================== ======================'3 建立个模块Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)'延时函数 sleepPublic Function Delay(DT As Long)For i = 0 To DT Step 2DoEvents '操作权交给系统否则程序会暂时无响应Sleep 1Next iEnd FunctionPublic Function 注册(dm As Object) As ObjectShell "regsvr32 dm.dll /s" '注册大漠插件到系统Delay 500Set dm = CreateObject("dm.dmsoft") '创建大漠插件End Function'窗体Dim dm As Object '声明 DM 为控件类型Private Sub 句柄_Click()Dim jb As Longjb = dm.GetForegroundWindow()MsgBox "句柄是:" & jbEnd SubPrivate Sub 版本_Click()Form1.Caption = "版本"ver = dm.ver()If Len(ver) = 0 ThenMsgBox "当前大漠插件未能正常调用"ElseMsgBox "当前大漠插件DM.dll版本是:" & verEnd IfEnd SubPrivate Sub 退出_Click()EndEnd SubPrivate Sub 移动_Click()Form1.Caption = "移动鼠标"dm.MoveTo 22, 22 '移动鼠标'dm_ret = dm.LeftClick '移动单击End SubPrivate Sub 找图_Click()Form1.Caption = "找图"'dm.FindPic 0, 0, 800, 600, App.Path + "\开始.bmp", 0, 0.9, 0, X, yCall dm.FindPic(0, 0, 800, 600, App.Path + "\开始.bmp", 0, 0.9, 0, X, y)If X >= 0 Thendm.MoveTo X, y '移动鼠标'dm.LeftClick '移动单击Delay 3000MsgBox "找图找到!"ElseMsgBox "找图没找到!"End IfEnd SubPrivate Sub 文字识别_Click()Form1.Caption = "文字识别"dm.SetDict 0, App.Path + "\DDDD.txt"s = dm.Ocr(0, 0, 200, 100, "ffffff-000000", 1#)MsgBox "识别结果是:" & sEnd SubPrivate Sub 找字_Click()Form1.Caption = "找字"dm.SetDict 0, App.Path + "\DDDD.txt"dm_ret = dm.FindStr(0, 0, 200, 100, "我", "ffffff-000000", 1#, intx, intY)If intx >= 0 Thendm.MoveTo intx, intYMsgBox "找字找到!"ElseMsgBox "找字没找到!"End IfEnd SubPrivate Sub Form_Load()On Error Resume Next '容错处理遇到错误直接执行下面的语句注册 dmEnd Sub。

VB6.0调用matlab生成的dll文件

VB6.0调用matlab生成的dll文件

VB6.0调用matlab生成的dll文件环境:win7 64位,matlab2010b,Vb6.0一、设置环境变量右键计算机——属性——高级系统设置——环境变量,在用户变量和系统变量中均添加如下路径:路径名为path 值为”C:\Program Files\MATLAB\R2010b\bin\win64”(matlab安装路径),重启计算机。

二、编写m文件,注意以function开头三、在matlab中设置编译环境1.在matlab命令窗口中输入mex –setup,选择n,然后在弹出的众多编译器中选择一个,最好选择VC++系列(在进行这一步时,现在电脑上安装VC的编译器,如VC++6.0、Visual Studio,注意要安装英文版),接下来一直选择y,直至看见Done……,证明这一步成功了;2.接下来输入么build –setup,接下来步骤与1相似,直至看见Done……。

四、进行编译,生成dll文件1.在matlab窗口中输入deploytool,在弹出的窗口中,name随便填,location选择默认即可,Target选择倒数第二项:Generic COM Component,单击OK;2.选择Add class,填写class name,单击Add files,选择所需编译的m文件,然后单击build按钮,等待编译结束,这是会看到生成的文件夹中含distrib这个文件夹,所需的dll文件即在里面。

五、注册dll开一个dos窗口(在开始里输入运行即可),在dos窗口中输入:cd/d /runtime/win64,回车,接着输入mwregsvr mwcomutil.dll,即对mwcomutil.dll 进行注册(这个dll是matlab下作的任何com组件都要用到的dll)。

六、在vb6.0中调用生成的dll文件1.打开vb6.0,点击工程——引用——浏览,找到放置dll文件处,选择,点击确定;2.vb6.0命令行处应写:Dim myplot As plot.plot1Set myplot = New plot.plot1……Call myplot.plot1(str, strname, xx5, yy2, y)(说明:其中myplot为自己取的名字,plot为matlab编译dll 文件时的class name,plot1为源文件m文件的名字)。

VB调用DLL文件

VB调用DLL文件

VB调用DLL文件
VB默认的传递方式就是传指针(ByRef,也就是把变量的地址传递给所调用的函数)。

如果要传值(也就是把变量的值传递给所调用的函数)反要在参数声明前加ByVal。

1.如果你传递的参数是普通的数据类型,在参数前什么都不要加就行了。

如C语言声明为:
void __stdcall MyProc(short * nPara);
则VB声明为:
Declare Function MyProc Lib "MyDll.dll" (nPara As Integer) 调用时同普通函数。

2.如果C语言中的指针是字符串指针,那么在VB声明时需要加上ByVal,这是个例外。

如C语言声明为:
void __stdcall MyProc(char * sPara);
则VB声明为:
Declare Function MyProc Lib "MyDll.dll" (ByVal sPara As String)
调用时同普通函数。

3.如果C语言的指针是数组指针,则在VB中调用时应将数组的首元素传递给DLL。

如C语言声明为:
void __stdcall MyProc(int [] arrPara);
则VB声明为:
Declare Function MyProc Lib "MyDll.dll" (nPara As String)
调用时为MyProc A(0)。

注意:不能直接传递数组名,因为如果传递数组名,VB实际会传一个复杂的结构类型给DLL,这对编写C语言的DLL来说,处理这样的结构比较麻烦,所以通常都不支持这种方式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 制作好DLL之后,就可以用VB调用它,实现VB调用C程序。

VB程序要使用DLL中的函数,首先必须要有特殊的声明,用Declare声明语句在窗体级或模块级或全局模块的代码声明段进行声明,将动态链接库中的函数声明到VB中,供VB程序调用。

语句格式为:Declare Sub 过程名Lib [ Alias " 别名]([ByVal 参数AS类型]),或为Declare Function函数名Lib [Alias " 别名]([ByVal 参数AS类型])AS类型在声明中首先用Declare 关键字表示声明DLL中的函数。

在C语言中有的函数类型为VOID,它表示不具有返回值,则必须用关键字Sub将其声明成过程。

有的函数具有返回值,则必须用关键字Function将其声明成函数,并且在声明语句的最后要用AS关键字指明函数返回值的类型。

例如上面的ADD.DLL在VB中就可以声明为:Decl are Function ADD Lib “c:\ADD.dll” (ByVal X AS Integer, ByVal Y AS Integer ,ByVal filein asstring)AS Integer通过此声明语句将函数ADD声明到VB中,便可直接调用。

2、dll文件中的函数好像是C语言写的,// 函数名:int __stdcall GetMacNo(int *MacNo)// 功能:获取卡机的卡机号(单机时)// 参数: MacNo[0]-被读出的卡机号// 返回值:0-成功,// 2-PC接收超时,// 3-应答错误dll的文件名是COMM232.dll函数的形参int *MacNo是指针吗?在VB中应该怎么声明和调用该函数?VB里也可以定义指针吗?问题补充:vb调用dll文件中的函数我是会的,但这儿的形参有一个星号才不知是怎么一回事,我是这样声明的对吗?Public Declare Function GetMacNo Lib "COMM232.dll" (ByVal MacNo As Integer) As Integer又应该怎么调用呢?要先定义一个指针的变量再传给*MacNo还是要怎么做?都说了MacNo是被读出的卡机号,那么就是传址的了。

dim l as integerdim m as integerl=GetMacNo(m)if l=0 thenlabel1.caption="卡机号: " & melseif l=2 thenmsgbox "PC接收超时"elseif l=3 thenmsgbox "应答错误"end ifWindows动态连接库是包含数据和函数的模块,可以被其它可执行文件(EXE、DLL、OCX 等)调用。

动态连接库包含两种函数:输出(exported)函数和内部(internal)函数。

输出函数可以被其它模块调用,而内部函数则只能在动态连接库内部使用。

尽管动态连接库也能输出数据,但实际上它的数据通常是只在内部使用的。

使用动态连接库的优点是显而易见的。

将应用程序的一部分功能提取出来做成动态连接库,不但减小了主应用程序的大小,提高了程序运行效率,还使它更加易于升级。

多个应用程序共享一个动态连接库还能有效地节省系统资源。

正因为如此,在Windows系统中,动态连接库得到了大量的使用。

一般来说,动态连接库都是以DLL为扩展名的文件,如Kernel32.dll、commdlg.dll等。

但也有例外,如16位Windows的核心部件之一GDI.exe其实也是一个动态库。

编写动态连接库的工具很多,如VisualC++、BorlandC++、Delphi等,具体方法可以参见相关文档。

下面只以Visual C++6.0为例,介绍一下开发应用于VisualBasic6.0的动态连接库时应注意的问题(本文中所有涉及C/C++语言或编译环境的地方,都以VC为例;所有涉及Visual Basic 的地方都以VB 为例)。

作为一种32位Windows应用程序的开发工具,VB生成的exe文件自然也都是32位的,通常情况下也只能调用32位的动态连接库。

但是,并不是所有的32位动态库都能被VB生成的exe 文件正确地识别。

一般来说,自己编写用于VB应用程序调用的动态连接库时,应注意以下几个方面的问题:1、生成动态库时要使用__stdcall调用约定,而不能使用缺省的__cdecl调用约定;__stdcall 约定通常用于32位API函数的调用。

2、在VC中的定义文件(.def)中,必须列出输出函数的函数名,以强制VC系统将输出函数的装饰名(decoratedname)改成普通函数名;所谓装饰名是VC的编译器在编译过程中生成的输出函数名,它包含了用户定义的函数名、函数参数及函数所在的类等多方面的信息。

由于在VC中定义文件不是必需的,因此工程不包含定义文件时VC就按自己的约定将用户定义的输出函数名修改成装饰名后放到输出函数列表中,这样的输出函数在VB生成的应用程序中是不能正确调用的(除非声明时使用Alias子句)。

因此需要增加一个.def文件,其中列出用户需要的函数名,以强制VC不按装饰名进行输出。

3、VC中的编译选项"结构成员对齐方式(structure member alignment)" 应设成4字节,其原因将在后文详细介绍。

4、由于在C中整型变量是4个字节,而VB中的整型变量依然只有2个字节,因此在C中声明的整型(int)变量在VB中调用时要声明为长整型(long),而C中的短整型(short)在VB中则要声明成整型(integer);下表针对最常用的C语言数据类型列出了与之等价的Visual Basic 类型(用于32位版本的Windows)。

C语言数据类型在VisualBasic中声明为调用时使用的表达式ATOM ByVal variable As Integer 结果为Integer 类型的表达式BOOL ByVal variable As Long 结果为Long 类型的表达式BYTE ByVal variable As Byte 结果为Byte 类型的表达式CHAR ByVal variable As Byte 结果为Byte 类型的表达式COLORREF ByVal variable As Long 结果为Long 类型的表达式DWORD ByVal variable As Long 结果为Long 类型的表达式HWND, HDC, HMENU ByVal variable As Long 结果为Long 类型的表达式等Windows 句柄INT, UINT ByVal variable As Long 结果为Long 类型的表达式LONG ByVal variable As Long 结果为Long 类型的表达式LPARAM ByVal variable As Long 结果为Long 类型的表达式LPDWORD variable As Long 结果为Long 类型的表达式LPINT, LPUINT variable As Long 结果为Long 类型的表达式LPRECT variable As type 自定义类型的任意变量LPSTR, LPCSTR ByVal variable As String 结果为String 类型的表达式LPVOID variable As Any 任何变量(在传递字符串的时候使用ByVal)LPWORD variable As Integer 结果为Integer 类型的表达式LRESULT ByVal variable As Long 结果为Long 类型的表达式NULL As Any 或ByVal Nothing 或ByVal variable As Long ByVal 0& 或VBNullStringSHORT ByVal variable As Integer 结果为Integer 类型的表达式VOID Sub procedure 不可用WORD ByVal variable As Integer 结果为Integer 类型的表达式WPARAM ByVal variable As Long 结果为Long 类型的表达式5、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环境变量中的目录下表中列出了常用的操作系统环境库文件。

相关文档
最新文档