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

这篇具有很好参考价值的文章主要介绍了VB写dll以及调用的具体实例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一.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中的所有函数和过程。调用方法如下图所示

VB写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,如图所示:

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


三.出现的一些问题:

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

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

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

 这时再运行刚刚生成的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文章来源地址https://www.toymoban.com/news/detail-440833.html

到了这里,关于VB写dll以及调用的具体实例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python如何调用DLL库?——实例详解及代码

    Python如何调用DLL库?——实例详解及代码 在Python中,您可以通过调用DLL库完成各种功能,来满足不同的需求。调用DLL库意味着从外部获取了一些函数,可以在Python中直接调用这些函数,这对于Python程序员来说是一种非常有用的技能。本文将为大家介绍如何在Python中调用DLL库。

    2024年02月06日
    浏览(43)
  • Nginx实例:限制目录和URL以及IP访问控制

    如果我们深入研究Nginx的功能还是蛮有意思的,比如我们前面有聊到UA可以控制爬虫限制和放行访问。我们也可以利用Nginx进行控制和限制URL、目录,以及IP地址的访问。比如有一些运维的时候,需要用到屏蔽某些IP地址,或者是我们某个目录只能某个IP地址访问或者限制访问。

    2024年02月12日
    浏览(62)
  • 【人工智能】LLM大模型中的词嵌入和上下文理解技术实例讲解,附具体的代码例子

    词嵌入(Word Embeddings)可以将高维的文本数据转换成低维的稠密向量表示,在进行自然语言处理任务时,这样的表示方式可以帮助算法理解词语之间的相似性以及上下文关系。以下是一个使用 TensorFlow 和 Keras 实现 Word2Vec 词嵌入模型的代码实例。 使用 TensorFlow 和 Keras 的 Word

    2024年02月07日
    浏览(76)
  • Unity3d Application中的所有目录以及含义

    本工程Asset的完整路径,测试输出Log:dataPath:E:/game_all/GameClient/Assets 本地可写区目录,测试输出Log:persistentDataPath:C:/Users/zhang/AppData/LocalLow/DefaultCompany/GameClient 本工程Asset/StreamingAssets目录,测试输出Log:streamingAssetsPath:E:/game_all/GameClient/Assets/StreamingAssets 本地可写区临时缓存目录

    2024年02月12日
    浏览(58)
  • 实验6-cp –r系统命令的实现--源路径(目录)中的所有文件和子目录,以及子目录中的所有内容,全部拷贝到目标路径(目录)中--操作系统实验

    掌握Linux目录操作方法,包括打开目录、关闭目录、读取目录文件 掌握Linux文件属性获取方法,包括三个获取Linux文件属性的函数、文件属性解析相关的宏 掌握POSIX与ANSI C文件I/O操作方法,包括打开文件、关闭文件、创建文件、读写文件、定位文件 利用POSIX API(文件操作也可

    2024年02月08日
    浏览(52)
  • VPN的简介以及在ENSP中的基础配置

    3)GRE 通用路由封装 – 一种简单的VPN技术 – 属于点到点网络类型 VPN虚拟专用网络 — 让两个网络穿越中间网络来直接通讯,逻辑的在两个网络间建立了一条新的点到点直连链路; [r1]interface Tunnel 0/0/0 [r1-Tunnel0/0/0]ip address 10.1.1.1 24 [r1-Tunnel0/0/0]tunnel-protocol gre [r1-Tunnel0/0/0]sour

    2024年01月25日
    浏览(52)
  • 使用vb.net调用bartender并打印标签

    1.项目调用第三方dll,使用bartender软件制作标签 2.输入内部批号信息,可根据内部批号带出其他基本信息,并体现在标签上 3.根据标签内容,可显示 条形码,二维码等信息,并可用BarCode 扫描内容,并显示正确 4.数量计算规则:标签个数= 打印批号的当前数量 / 1000 (一箱数量

    2024年02月11日
    浏览(59)
  • OpenCV中的normalize函数以及NORM_MINMAX、NORM_INF、NORM_L1、NORM_L2具体应用介绍

    在OpenCV中,normalize函数用于将图像或矩阵的值规范化到一个特定的范围内。这在图像处理中非常有用,比如在调整图像的对比度、准备数据进行机器学习处理时。规范化可以提高不同图像之间的可比性,或是为了满足特定算法对数据范围的要求。 src:输入数组(可以是图像)

    2024年02月22日
    浏览(41)
  • 思科与华为设备中的OSFP配置命令以及部分实例(超详细~~!!)

    目录 一、OSPF相关配置命令 1.思科设备配置命令 (1)启动OSPF路由进程 (2)激活参与OSPF路由协议的接口,并且通告结构属于哪个区域的OSPF (3)配置路由器ID (4)配置被动接口 (5)把某区域配置为末节区域 (6)把某区域配置为完全末节区域 (7)把某区域配置为次末节区

    2024年01月16日
    浏览(46)
  • js简介以及在html中的2种使用方式(hello world)

    javascript :是一个跨平台的脚本语言;是一种轻量级的编程语言。 JavaScript 是 Web 的编程语言。所有现代的 HTML 页面都使用 JavaScript。 HTML: 结构 css: 表现 JS: 行为 HTML+CSS 只能称之为静态网页,加入js网页则有了灵魂称之为动态网页 脚本语言的特点: 不能独立运行,要依赖

    2024年02月12日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包