vb6到vb.net - Guids和类

时间:2016-07-30 10:53:40

标签: vb.net vb6

vb.net像这样的对象

<ComClass(WarrantyPrint.ClassId, WarrantyPrint.InterfaceId, WarrantyPrint.EventsId)>
Public Class WarrantyPrint

    Public Const ClassId As String = "3EEDF4AD-78CB-4D9B-8F38-149CA1914AE0"
    Public Const InterfaceId As String = "18343576-609A-473B-804D-03EB4E559FE8"
    Public Const EventsId As String = "390970DD-AABF-42BB-B9F6-6CB6BE5D7248"

Public Sub initializing
' do smth
End Sub  

    Public Class Towns
        Public Property NameTown As String = ""
        Public Property AddressTown As String = ""
    End Class

    Public Class ListTowns
        Public Property ListTowns() As New List(Of Towns)
    End Class

    Public Sub Add(t As Towns)
        tList.ListTowns.Add(t)
    End Sub
End Class

从vb6我想像这样设置这个对象

  Dim ob As Object
    Set ob = CreateObject("Company.Applicat3.laufer.WarrantyPrint")
        ob.Initializing 

    Dim X As Object
    Set X = CreateObject("Company.Applicat3.laufer.WarrantyPrint.towns")
        X.NameTown = "Test"
        X.AddressTown = "123"
        ob.Add (X)

        ob.Show

在此之后我收到一个错误: activex组件无法创建对象。

当然我在我的机器下注册了这个dll。证据就是它向我显示第二个对象“x”的错误,“ob”一切都很好。

我尝试命名GUID并加入第二个类,但错误是一样的。

2 个答案:

答案 0 :(得分:0)

也许您的意思是Towns而不是Artikli(在Set X = CreateObject("Company.Applicat3.laufer.WarrantyPrint.Artikli")行。)

答案 1 :(得分:0)

在您的班级WarrantyPrint中,没有名为Artikli的班级。这会导致错误。也许代码应该使用Towns代替。