VB6.0调用ActivexDLL出错,求帮忙找下原因
我用VB6.0创建了一个activexDLL,名称为SH.DLL,在其中定义了MIS1,MIS2,MIS33个类文件,
其中MIS1定义了一个函数Public Function Trans(Request As MIS2, Response As MIS3) As Long,
MIS2中定义了输入的数据类型:Public PNumber As String Public SNumber As String等一些数据
MIS中定义了一些要输出的数据类型:Public PNumber As String Public SNumber As String
我另外用VB6.0做了一个EXE测试程序,代码如下:
Private Sub Command1_Click()
Dim a As Object
Dim b As Object
Dim c As Object
Set a = CreateObject("SH.MIS1")
Set b = CreateObject("SH.MIS2")
Set c = CreateObject("SH.MIS3")
Dim ret As Long
With b
.PNumber = 1
.SNumber = 2
End With
ret = a.TransProcess(b, c)
End Sub
在执行到ret = a.TransProcess(b, c) 会返回“运行时错误13:类型不匹配”的错误
如果我把代码修改成如下:
Private Sub Command1_Click()
Dim a As New SH.MIS1
Dim b As New SH.MIS2
Dim c As New SH.MIS3
With b
.PNumber = 1
.SNumber = 2
End With
ret = a.TransProcess(b, c)
End Sub
并在工程--引用里增加SH.DLL的引用,就可以正常运行,没有报错
谁可以告诉我这两个调用方法的区别是什么吗?
如果我需要使用第一种调用方法,我应该怎么去修改程序,才能不报错?
[解决办法]
“MIS中定义了一些要输出的数据类型:Public PNumber As String Public SNumber As String”这个地方写错了,应该是MIS3中定义了输出数据类型
[解决办法]
留贴是个好习惯!