2016-07-30 65 views
0

vb.net对象这样VB6到vb.net - 的GUID和类

<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并放在第二个类上,但错误是一样的。

+0

“xxx”看起来不像“x.x.x.WarrantyPrint”。混淆你的代码当然是问这样一个问题的最糟糕的方式。 –

+0

好吧,现在我把“GUID” - s。 –

+0

您没有提供足够的代码来重现问题 - 例如'tList'没有在您的.net代码中声明。 – MarkL

回答

0

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

+0

错误在行'Set X = CreateObject(“Company.Applicat3.laufer.WarrantyPrint.Artikli”)' –

+0

仍然是同样的错误 –

0

在你的班级WarrantyPrint没有类Artikli。这会导致错误。也许代码应该使用Towns

+0

即使在得到错误 –