首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB6.0调用ActivexDLL出错,求帮忙找上原因

2012-12-20 
VB6.0调用ActivexDLL出错,求帮忙找下原因我用VB6.0创建了一个activexDLL,名称为SH.DLL,在其中定义了MIS1,M

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中定义了输出数据类型
[解决办法]
留贴是个好习惯!

热点排行