Perchè un oggetto scritto con VBNet no è eseguibile da VB6

sabato 25 ottobre 2014 - 17.03
Tag Elenco Tags  VB.NET  |  .NET 2.0  |  .NET 3.5  |  Visual Studio 2008

dotnothell Profilo | Newbie

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

Davide1986 Profilo | Junior Member

Vedi se ti può essere d'aiuto questa guida? Io ho usato questa ed ha funzionato.

Link Create a DLL by CSharp or VB.Net for VBA : http://www.geeksengine.com/article/create-dll.html

Non sono sicuro se può funzionare :

Dim objCalc2 As COMClass.ICOMClass Set objCalc2 = CreateObject("COMClass.ICOMClass")

Altri siti utili :
http://www.artinsoft.com/com-class-exposure.aspx
http://stackoverflow.com/questions/3360160/how-do-i-create-an-activex-com-in-c

Saluti Davide
Blog ImaginSystems
http://blogs.dotnethell.it/imaginsystems
http://www.imaginsystems.it
http://www.alpacasrl.it
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5