2010-02-13 15 views

Respuesta

12

creo que sólo debe ser capaz de añadir la biblioteca que contiene el tipo de VB6 como referencia en su proyecto de C#. Visual Studio creará un conjunto de interoperabilidad sobre la marcha, y obtendrá acceso a todos los tipos en la biblioteca de VB6 a través del Runtime Callable Wrappers.

La herramienta que crea el conjunto de interoperabilidad es TLBIMP.EXE, y puede ejecutarlo usted mismo si desea tener más control sobre el proceso, por ej. si desea crear un Primary Interop Assembly que puedan compartir varios componentes administrados.

+0

w.r.t "la biblioteca", puede buscar un archivo EXE ActiveX VB6 o DLL que contenga una clase y agregarlo como referencia. La Asamblea de interoperabilidad se creará automágicamente para usted. –

+0

@ bob denny. No siempre es tan fácil, VS IDE elige una opción que hace que trabajar con estructuras de datos complejas que tienen matrices sea difícil, si no imposible. Es mejor usar tlbimp a menos que tenga entradas y salidas muy, muy simples. – Steve

+1

@Steve Interesante. ¿Puedes dar más detalles sobre este problema? Un enlace sería útil. – MarkJ

0

Claro, solo necesita convertirlo en un objeto COM.

+0

de DLL creada con Visual Basic 6 son siempre (bueno, casi siempre) COM DLL. Para hacerlos de otra manera, tienes que pasar por muchos aros de tipo de arte negro. – BobRodes

3

Como @Wayne afirma en su publicación (+1) es absolutamente posible.

me inclinaría por una reescritura de su clase de Visual Basic 6:
Si usted tiene la fuente VB6 y la financiación, recomendaría que volver a escribir la clase en C#.
Although VB6 may live forever:
Current support Statement for Visual Basic 6.0

+0

No estoy seguro de por qué las personas votan esto, pero le di a @sashaeve net -5 una respuesta equivalente. –

+0

@Ben Voigt: ¿Podría señalar la respuesta a la que se refiere? –

+0

@Kb: está en esta página, pero se necesita mucha reputación para ver las respuestas eliminadas. Él dijo: "Tienes que convertirlo a clase VB.NET y que [sic] es posible usar este código en tu aplicación C#". –