C# - Caricare Da Windows Form DLL realizzato con VB6

giovedì 28 novembre 2013 - 09.56
Tag Elenco Tags  C#  |  .NET 4.0  |  Windows XP  |  Visual Studio 2010  |  Visual Studio Express

yag Profilo | Junior Member

Salve

sto cercando di caricare una classe di una dll creato con visual basic 6 per farlo uso questo codice:

Assembly assem = Assembly.LoadFile(@"PATH DLL"); <--- in questo punto viene generata una exception

System.BadImageFormatException
http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k(EHBADIMAGEFORMAT);k(TargetFrameworkMoniker-%22.NETFRAMEWORK%2cVERSION%3dV4.0%22);k(DevLang-CSHARP)&rd=true

ho cercato soluzioni in rete e dice di verificare il PlatForm Target io ho verificato ed è tutto per x86 il che mi pare corretto
non so dove altro parare... grazie


Type classType = assem.GetType("classname");
MethodInfo method = classType.GetMethod("show"); //My methos is called show
method.Invoke(null, null); // I have to invoke the method using class object, which I am unable to create


EDIT: Aggiungo un dettaglio

Ho notato che se invece referenzio via progetto la DLL questa viene caricata e funziona correttamente.

0v3rCl0ck Profilo | Guru

quando l'importi da visual studio, funziona perchè automaticamente ti crea una dll wrapper indispensabile per utilizzare codice unmanaged, e cioè codice compilato in linguaggio macchina, come quello generato da vb6, c, c++, ecc... mentre .net genera codice intermedio (IL) per la precisione MSIL (Microsoft Intermediate Language) che poi viene interpretato dal runtime JIT compiler, che a runtime compila l' IL in codice nativo per la macchina in cui sta girando.

dopo questa prefazione ti passo un paio di link che spiegano come utilizzare una dll vb6 in .net:

http://www.vb-helper.com/howto_net_use_vb6_dll.html
http://www.codeproject.com/Articles/154144/Using-Unmanaged-VB6-Code-in-NET


Michael Denny
Software Developer & Architect
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
Twitter: @dennymic
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