如何用VB编写一个DLL文件,然后再编写一个VB程序调用那个DLL中的函数

yck 2003-07-10 05:06:04
如何用VB编写一个DLL文件,然后再编写一个VB程序调用那个DLL中的函数
我不知道DLL中要怎么定义那个函数, 然后在程序里怎样调用
...全文
94 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
kyuwong 2003-07-19
  • 打赏
  • 举报
回复
我写了一个插件,可以让vb编译标准dll。
大家可以到http://www.csdn.net/cnshare/soft/18/18055.shtm下载看看。
James0001 2003-07-15
  • 打赏
  • 举报
回复
没有绝对路径和相对路径之分,因为信息都是存在注册表里的,包括在哪里可以找到此 DLL。
不过用 Automation 是可以动态连接的。
feto 2003-07-14
  • 打赏
  • 举报
回复
比如,你编了个a.dll,其中有txt(str1 as string,str2 as string)函数,你要在b.exe中调用它。
新建b工程在b.exe中调用txt函数的地方写
dim obj as object
set obj = CreateObject("引用串") '生成a.dll中类的对象
obj.txt("你搞","懂了吗?")

注意"引用串"这么写:
比如你建这个a.dll时
工程名为 MyDll
而txt函数所在得类名为MyClass
则"引用串"为"MyDll.MyClass"

所以你调用这个函数时写成:
dim obj as object
set obj = CreateObject("MyDll.MyClass")
obj.txt("你应该","搞懂了!")


pigpag 2003-07-14
  • 打赏
  • 举报
回复
不存在动态导入,就规定了Dll必须放在特定的文件夹内。无所谓绝对路径和相对路径的。
pigpag 2003-07-14
  • 打赏
  • 举报
回复
VB6是不支持库Dll的,因此也就不能动态链接。Dll的引用都是设计时安排的,运行时无法导入或引用。
yck 2003-07-14
  • 打赏
  • 举报
回复
这样生的dll好像是绝对路径,能不能把它改成相对路径呢谢谢
cxq1846 2003-07-11
  • 打赏
  • 举报
回复
http://support.microsoft.com/default.aspx?scid=kb;zh-tw;186342
去microsoft公司的官方网站去看看。

示例:
新建工程选择 actiex.dll
然后写接口:
public function afun(by s1 as integer,byval s2 as integer) as integer
afun=s1+s2
end function
取工程名为a ,假定不该类名仍为class1
将工程编译,生成 a.dll
保存工程,并关闭。
新建另一个标准exe工程,在工程里选择引用,就可以查到一个叫a.dll的组件,将其引用。
然后你可以写一个程序引用这个组件。
引用组件代码段:
dim testobj as a.class1
set testobj = new a.class1
' ======== 声明使用组件部分===========
dim sum as integer
sum = a.afun(10,20) '调用afun方法

realKK 2003-07-11
  • 打赏
  • 举报
回复
1. 创建一VB工程,工程类型为ActiveX DLL. 在工程属性对话框中将Project Description修改为:Test DLL
2. 在工程中新建一Class, 将Class的Instancing设置为GlobalMultiUse
3. 在Class中写入:
Public Sub afun(ByVal s1 As String, ByVal s2 As String)
Call MsgBox(s1 & vbCrLf & s2) ' 显示传入数据
End Sub
4. 编译工程为a.dll

5. 新建一VB工程,工程类型为Standard EXE
6. Project->Reference, 打开Reference对话框,在列表中找到Test Dll并选中,确定退出对话框.
7. 然后....在这个vb工程里面任何地方只要直接写:
Call afun("line1", "line2)
就能看到效果了~
yck 2003-07-10
  • 打赏
  • 举报
回复
各位高手,能不能具体一点呢,
比如我要编一个a.dll
里面要有个 afun(s1,s2) 的过程

然后再编一个b.exe
b程序中要调用a.dll中那个afun(s1,s2)那个过程

请教一下怎么编 a.dll
还有b.exe中怎样来调用呢

非常感谢,
ClassicWuHao 2003-07-10
  • 打赏
  • 举报
回复
用Object Browser查看具体有哪些对象,然后用set sth=new sth或dim sth as new sth来创建一个实例.
realKK 2003-07-10
  • 打赏
  • 举报
回复
在Dll里面做一个类,将类的Instancing设置为GlobalMultiUse,把你要提供的函数写在这个类里面,并且申明为Public的;
然后在要调用这个函数的工程中首先引用这个dll,然后不用作任何事情就可以直接调用这个函数了
yck 2003-07-10
  • 打赏
  • 举报
回复
这些我知道呀
我是说是怎么定久
怎样调用
dll也是要编的
这个程序也是要编的
sanil 2003-07-10
  • 打赏
  • 举报
回复
1.新建文件,选DLL那种,在新建的DLL文件中写公用函数;
2.编译DLL文件;
3.添加一个标准的项目,在标准项目中引用那个DLL文件,然后就可以了。
Dickson 2003-07-10
  • 打赏
  • 举报
回复
创建ACTIVEX DLL,然后用时点“工程”中的“引用”

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧