如何在vb中调用其他软件制作的com组件?

szp 2003-11-20 11:35:36
自己做了一个com组件,生成dll文件,假设叫comtest.dll,里面有一个函数有两个返回值,就象这样:
[x,y]=fun(val)

现在我要在别的程序中引用这个dll文件,声明格式是否和API函数一样,如:
Private Declare Function fun Lib "comtest1.dll" 。。。。
另外,在程序中应该怎样调用这个fun函数,并取得它的两个返回值x和y呢?请高手详细指点,最好能给出代码示例,谢谢!!
...全文
166 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lemonchen 2003-11-21
  • 打赏
  • 举报
回复
对,在工程中加入该组件的应用
SoHo_Andy 2003-11-21
  • 打赏
  • 举报
回复
至于使用函数返回你需要的数据结构不用细说了吧
比如你说的返回[x,y],那首先你要定义这样的数据结构,数组、结构变量、甚至
一个类都可以
然后就
你的数据结构=comObject.Fun(val) 就行了

SoHo_Andy 2003-11-21
  • 打赏
  • 举报
回复
具体是这样的,举例说明
你做了一个组件A,里面和EXE工程一样有窗体1、模块1、类模块1
因为资源大都是本地引用所以你的窗体资源、模块中的函数为类模块中的
函数所引用
当你引用了这个组件A之后,可以这样声明
Private comObject As New A.类模块1
然后那个类模块1中的函数就可以和正常调用函数一样使用,当然也可以调用
类模块中的窗体等等资源

常用的例子就是银行系统常用的安全验证组件
aner 2003-11-21
  • 打赏
  • 举报
回复
引用到工程里,然后在工程里建立這個com的新的對象
szp 2003-11-21
  • 打赏
  • 举报
回复
如果需要调用那具体的该怎么调用呢?我该怎么调里面的函数呢?如果是引用,从工程-引用 浏览 选中该文件以后又该怎么调里面的函数?能否给段简短的代码,能说明问题就行。先谢谢各位了!
SoHo_Andy 2003-11-21
  • 打赏
  • 举报
回复
你说的意思是 ActiveX DLL ,这个需要引用就行了
然后在代码中直接声明就可以使用了
kmzs 2003-11-21
  • 打赏
  • 举报
回复
如果是VC等制作的标准DLL就调用,如果是ActiveX Dll就要引用,总之你试一试
online 2003-11-21
  • 打赏
  • 举报
回复
举个例子

新建ACTIVE DLL工程,工程名COM_Test,类名clsAdd,类中粘贴代码:

Option Explicit

Public x, y As Integer

Public Function myAdd() As Integer

myAdd = x + y

End Function

编译得到COM_Test.dll,注册组件



Option Explicit

Dim myAdd As New clsAdd



Private Sub Command1_Click()



With myAdd

.x = Val(Text1.Text)

.y = Val(Text2.Text)

Text3.Text = .myAdd

End With



End Sub



Private Sub Command2_Click()

Set myAdd = Nothing

End

End Sub



Private Sub Form_Load()

Set myAdd = New clsAdd

End Sub

然后编译生成COM_CLIENT.EXE,将这个文件和刚才导出的两个文件复制到客户机上(WIN2000),

在客户机上安装myadd.msi,再运行COM_CLIENT.EXE试试!

注意在客户机登录的用户要有安装和访问服务器组件的权限!



我的那个例子就是类似的

rainstormmaster 2003-11-21
  • 打赏
  • 举报
回复
//自己做了一个com组件,生成dll文件

//现在我要在别的程序中引用这个dll文件,声明格式是否和API函数一样

你需要做的是引用使用(工程-引用 浏览 选中该文件 确定)
而不是声明使用(因为你的com组件不是标准的dll)

7,789

社区成员

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

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