2016-07-30 63 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

即使在得到錯誤 –