Esporre classe in VB2008 Express a COM

mercoledì 12 agosto 2009 - 17.48

erongis Profilo | Junior Member

Ciao a tutti, ho un problemino serio. Ho creato una Dll in VB2008 express e vorrei che sia disponibile in VB6. Dopo aver indicato in ogni classe della mia DLL che è una classe COM e che deve essere visibile a COM, ho compilato la dll.

Dopo averla compilata ho generato il file TLB utilizzando il Regasm.exe.

Apro VB6 e nel mio progetto includo tranquillamente la mia dll visibile tra i riferimenti.

Vedo perfettamente la mia classe con tutti i metodi e proprietà, però quando vado ad instanziare la mia prima classe, mi appare un "errore di runtime '-2147024894 (80070002)-errore di automazione - Impossibile trovare il file specificato."

Nel progetto VB2008 al metodo New non c'è codice e non ceroc mai un file preciso che potrebbe non esistere! In ambiente 2008 funziona correttamente.

Aiuto

------------------------------------------------------------------------------------------------------------
RAGAZZI HO RISOLTO!!!!! Posto la soluzione, magari a qualcuno può far comodo
------------------------------------------------------------------------------------------------------------

È l'uovo di Colombo, o meglio è un bug di VB6.

In pratica, la registrazione viene effettuata correttamente, ma nel momento di istanziare la mia classe proveniente da .NET, lui non la ritrova.

La mia DLL non è stata registrata nella GAC per cui è necessario che si trovi nella stessa cartella dell'eseguibile. La mia DLL però è già nella cartella dell'eseguibile, solo che VB6, quando apre il progetto, considera come path predefinito quello dove si trova Visual Basic 6.0 e non il mio progetto (.VBP). Quanco compilo il progetto e creo l'eseguibile, il tutto funziona alla grande!!!!!

Funziona anche se, al momento del primo accesso a Visual Basic faccio doppio click sul progetto.

Roba da matti....
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5