Salve non so se è la sezione giusta ma in ogni caso penso che possa esserla.
ho fatto questo piccolo progetto in VBNet per valutare l'interoperabilità tra oggetti COM+ in VBNet e applicazioni VB6.
codice:
Imports Microsoft.VisualBasic
Imports System.Runtime.InteropServices
<Microsoft.VisualBasic.ComClass()> Public Class COMClass
Implements ICOMClass
Public Interface ICOMClass
Property AnyData() As String
Sub AnySub(ByVal Value As String)
End Interface
Private m_Data As String = ""
Public Property AnyData() As String Implements ICOMClass.AnyData
Get
Return m_Data
End Get
Set(ByVal value As String)
m_Data = value
End Set
End Property
Public Sub AnySub(ByVal Value As String) Implements ICOMClass.AnySub
m_Data = Value
End Sub
End Class
Nelle proprietà dell' assmbly ho impostato che lo stesso deve essere visibile quale oggetto COM
La compilazione è stata eseguita senza errori, quindi ho preso il risultato (la DLL, il file xml e quello pdb) e li ho copiati di un PC dove è installato l'ambiente Visual Studio 6.0 nella directory del programma di test in VB6.
Ho generato il file tlb tramite RegAsm (OK), ho verificato con regedit che la libreria dei tipi (il file .tlb) fosse in esso (OK).
Poi ho refenziato la libreria dei tipi nel progetto VB6, le classi ICOMClass e COMClass sono entrambi visibili da VB6.
Il problema si presenta quando va in esecuzione
codice:
set myClass=new COMClass
l'ambiente VB6 va in errore : 'Automation error specified file not found'
Dove ho sbagliato ?
Qualcuno mi dia qualche suggerimento