VB如何调用dll函数

假如我有个DLL,名为asdfg.dll它里面有一个函数zxc(参数1,参数2)我要用这个函数,该怎么写?请高手帮我写出脚本,有时间的话请再加上注释谢谢!!... 假如我有个DLL,名为 asdfg.dll
它里面有一个函数 zxc(参数1,参数2)
我要用这个函数,该怎么写?
请高手帮我写出脚本,有时间的话请再加上注释
谢谢!!
展开
 我来答
娱乐小八卦啊a
高粉答主

2020-03-03 · 娱乐小八卦,天天都知道
娱乐小八卦啊a
采纳数:256 获赞数:117842

向TA提问 私信TA
展开全部

静态调用简单,动态调用麻烦;静态调用占用资源多,动态调用占用资源少。

静态调用就是常用的申明API,一个DLL库里有很多的函数可供调用,把要用的申明即可。比如:Public/Private Declare Function [函数名] Lib "DLL文件名" [Alias "别名"] (参数变量表) [As 返回值的数据类型]

示例:Private Declare Function Test Lib "dll.dll" (x As String) As String

当程序结束的时候系统回自动释放DLL调用。

动态调用使用LoadLibery(DLL名),系统会检查DLL是否调入内存。如果调入了,可直接调用DLL里的所有函数,没有就会把DLL加入目标进程的进程空间。通过函数GetProcAddress确定函数入口地址,然后调用,后一种方法VB里不常用的。

扩展资料

静态调用详解:

制作好DLL之后,首先用Declare声明语句在窗体级或模块级或全局模块的代码声明段进行声明,将动态链接库中的函数声明到VB中,供VB程序调用。

语法格式1:

Public/Private Declare Sub [函数名] Lib "DLL文件名" [Alias "别名"] (参数变量表)

语法格式2:

Public/Private Declare Function [函数名] Lib "DLL文件名" [Alias "别名"] (参数变量表) [As 返回值的数据类型]

在声明中首先用Declare关键字表示声明DLL中的函数。在C语言中有的函数类型为VOID,它表示不具有返回值,则必须用关键字Sub将其声明成过程。有的函数具有返回值,则必须用关键字Function将其声明成函数,并且在声明语句的最后要用AS关键字指明函数返回值的类型。

例如add.DLL在VB中就可以声明为:

Declare Function ADD Lib "c:\add.dll" (ByVal X AS Integer, ByVal Y AS Integer, ByVal filein as string) AS Integer

通过此声明语句将函数ADD声明到VB中,便可直接调用。































百度网友622429d
推荐于2017-10-06 · TA获得超过178个赞
知道答主
回答量:60
采纳率:100%
帮助的人:52.2万
展开全部
1.在工程-引用中将asdfg.dll引用过来
2.dim AAA as asdfg 'asdfg是类模块的名称
Private Sub Form_Load()
dim x
Set AAA = New asdfg
x = AAA.zxc(参数1,参数2)'参数1,2自己写
End Sub

建议你了解一下下面dll的制作方法,理解就更透彻了。下面内容来自百度。

1.新建一个ActiveX Dll,工程名字为vbmytestdll,类模块名字为mytestdll
2.类模块内容只有一个函数,主要返回DLL的HELLO WORLD
Public Function dlltest1() As String
dlltest1 = "HELLO WORLD"
End Function

3.保存,生成DLL,名字为

vbmytestdll.dll

4.新建一个EXE工程,在菜单: 工程---引用---浏览里找到vbmytestdll.dll,把它引用进来

5.EXE工程代码如下:

Option Explicit
Dim testdll As mytestdll'类模块名字

Private Sub Form_Load()
Set testdll = New mytestdll 'DLL的一个新实例
Me.Caption = testdll.dlltest1 '我的标题=返回DLL的HELLO WORLD
End Sub

OK,编译成EXE即可看到效果.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
韧劲9
推荐于2017-09-01 · TA获得超过9224个赞
知道小有建树答主
回答量:1638
采纳率:92%
帮助的人:348万
展开全部
1.新建一个ActiveX Dll,工程名字为vbmytestdll,类模块名字为mytestdll
2.类模块内容只有一个函数,主要返回DLL的HELLO WORLD
Public Function dlltest1() As String
dlltest1 = "HELLO WORLD"
End Function

3.保存,生成DLL,名字为

vbmytestdll.dll

4.新建一个EXE工程,在菜单: 工程---引用---浏览里找到vbmytestdll.dll,把它引用进来

5.EXE工程代码如下:

Option Explicit
Dim testdll As mytestdll'类模块名字

Private Sub Form_Load()
Set testdll = New mytestdll 'DLL的一个新实例
Me.Caption = testdll.dlltest1 '我的标题=返回DLL的HELLO WORLD
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kzccomputer
2008-01-11 · 超过21用户采纳过TA的回答
知道答主
回答量:199
采纳率:0%
帮助的人:76.4万
展开全部
1、右击工程》添加引用 把你的dll文件添加进去
2、然后你定义一个变量作为dll中函数类型的,将变量实例化,最后在调用方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我为¢歌狂
2008-01-12 · 超过24用户采纳过TA的回答
知道答主
回答量:224
采纳率:0%
帮助的人:0
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式