目录

一.dll的简介

二.VB6中的dll

1.常见的调用的方法:

2.通过vb6写dll:

3.dll的调用

三.出现的一些问题:

一.dll的简介

1.dll被称为动态链接库,是一个可由多个程序或其他dll调用用的代码和的库,使用dll可以让程序可以更加模块化,避免重复代码中出现。

2.vb6的dll可以包括过程和函数,函数具有返回值,过程则没有。

3.当程序调用dll ,就会产生依赖项,在dll被删除后,调用dll函数的代码就会报错。

二.VB6中的dll

1.常见的调用的方法:

(1).静态调用:

方法:Private/public Declare Sub 方法名 Lib "dll名" (方法的参数)

函数:Private/public Declare function 函数名 Lib "dll名" (方法的参数)

举个栗子:

方法:Private Declare Sub Sleep Lib "kernel32.DLL" (ByVal dwMilliseconds As Long)

函数:Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vkey As Long) 

 (2).通过引用窗口调用 :

点击工程--引用即可打开引用窗口,找到想要调用的dll,点击确定即可,通过这个方法可以调用dll中的所有函数和过程。调用方法如下图所示

 mathv3.dll为写好的dll。

2.通过vb6写dll:

(1).在vb6新建窗口新建一个ActiveX DLL。

(2).将class中的Instance属性设置为6,这个属性是决定这个类能不能公共化。

(3).编写代码,定义过程和函数如代码所示:

Private Declare Sub Sleep Lib "kernel32.DLL" (ByVal dwMilliseconds As Long) '调用kernel32.dll的sleep的方法

Function Flashbacks(number As Long) As Long '返回倒序数

For i = Len(number) To 1 Step -1

Flashbacks = Flashbacks & Mid(number, i, 1)

Next

End Function

Sub yc(sleeptime As Long) '调用系统api的延迟

Sleep sleeptime

End Sub

在dll工程,点击文件---生成dll,即可生成新的dll

3.dll的调用

(1).创建新的工程

(2).通过1.常见的调用的方法:的方法调用dll,注意:原工程名不能与工程一致

(3).编写代码:

Private Sub Form_Click()

yc 1000

Debug.Print Flashbacks(321)

End Sub

点击运行,单击窗体大约一秒后观察立即窗口显示123,如图所示:

三.出现的一些问题:

1.问题:将刚才编写的代码生成exe,在本机发现运行正常,但使用虚拟机模拟新的环境,发现报错,Runtime error没有注册类,分析:这种情况是dll没有注册出现的

解决方法:(1)打开任务管理器--详细信息--运行新任务--勾选以管理员模式运行,输入cmd以管理员模式运行,在cmd命令提示符,cd /d 切换到dll在的目录,regsvr32 dll文件名。(2).对话框提示dllregsvristrserver已注册成功,即可,流程如图所示。

 这时再运行刚刚生成的exe,发现可以正常运行了

2.问题:运行exe,发生报错,Runtime error自动化错误,分析:这种情况是dll文件丢失或dll引用的冲突导致,分为两种,一种是dll名冲突,另外一种是老旧版本冲突

解决方法:检查dll是否丢失,若无丢失,参考方法1重新注册dll即可。

3.问题:打开vb工程,运行程序,发生报错Runtime error自动化错误,分析:这种情况可能是引用的dll和注册的dll不匹配,也有可能是文件丢失与问题2类似解决方法:检查dll是否丢失,若无丢失,参考方法1重新注册dll或引用正确的dll即可。

Developed by 福州机电工程职业技术学校 wh

邮箱联系方式:xiaohui032901@foxmail.com

qq联系方式:2151335401、3135144152

好文阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: