Private Type VodData
     ISRC As String * 50
     provider_id As String * 50
     date As Date
     area As String * 50
     count As Integer
     amount As Double
     total_time As Double
End Type
Public Sub Form_Load()
Dim obj As New SoapClient
Dim vod As VodData
obj.ClientProperty("ServerHTTPRequest") = True
vod.ISRC = "ISRC CN A01-00-0075-0/V.J9"
vod.provider_id = "11012601"
vod.date = "2003-7-11 12:00:00"
vod.area = "合肥"
vod.count = 12
vod.amount = 12.3
vod.total_time = 42
Call obj.mssoapinit("http://192.168.1.188:8002/webservice/services.asmx?WSDL")
txt.Caption = obj.LoginOP("11012601", "123")
txt2.Caption = obj.PushVOD2(vod, "11012601", "123")
End Sub
运行时出现错误:Compile error:
Only user-defined typed types defined in public object modules can be coerced to or from a variant or passed to late-bound functions.请高手指点。

解决方案 »

  1.   

    注:出错的地方是:txt2.Caption = obj.PushVOD2(vod, "11012601", "123")的参数vod
      

  2.   

    我之前写的VB 类,里面的函数也不能传送结构参数,我想可能是VB不允许这么做吧,搞不明白,一般的BAS中定义的函数传递结构没有问题
      

  3.   

    vb是不允许传递自定义的结构,但是你可以用copymemory函数,把自定义结构的第一个成员的地址传递给函数。
      

  4.   

    看来真的很麻烦,我本来是希望用VB来调用web service的。我不可能让服务端给我该程序。不知道那位大师用VB调用过web service帮帮我啦!