关键词搜索

源码搜索 ×
×

VB写dll以及调用的具体实例

发布2022-12-18浏览2189次

详情内容

目录

一.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).编写代码,定义过程和函数如代码所示:

  1. Private Declare Sub Sleep Lib "kernel32.DLL" (ByVal dwMilliseconds As Long) '调用kernel32.dll的sleep的方法
  2. Function Flashbacks(number As Long) As Long '返回倒序数
  3. For i = Len(number) To 1 Step -1
  4. Flashbacks = Flashbacks & Mid(number, i, 1)
  5. Next
  6. End Function
  7. Sub yc(sleeptime As Long) '调用系统api的延迟
  8. Sleep sleeptime
  9. End Sub

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

3.dll的调用

(1).创建新的工程

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

(3).编写代码:

  1. Private Sub Form_Click()
  2. yc 1000
  3. Debug.Print Flashbacks(321)
  4. 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即可。

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载