Dll (C#) en VB6

07/01/2008 - 10:20 por Gonzalo Rodríguez Carrera | Informe spam
Hola a todos.

Ya se que es un poco raro, pero me han pedido en la empresa que
investigue esta posibilidad, ya que tenemos un macro-programa (vamos
un programa enorme) en VB6 y la posibilidad de ir "sustituyendo"
partes de este programa por Dll's ya hechas en .NET nos puede ahorrar
trabajo en futuro... ya que iriamos migrando a los pocos la
aplicación.

Así que. ¿Se pueden usar librerías creadas en .NET en VB6?

Yo lo he intentado, pero no me aparecen en referencias (de VB6) y
cuando intento registrar una dll creada en .NET con el regsrv32 me
dice que se descarga el objeto pero no se puede registrar ya que no
hay punto de entrada.. así que no se muy bien por donde tirar...

Un while(true) de gracias a todos.

Gonzalo Rodríguez
Vigo - España

Preguntas similare

Leer las respuestas

#6 Gonzalo Rodríguez Carrera
07/01/2008 - 16:33 | Informe spam
Ya está. Cambié la interfaz a otra clase y ya funciona.
¡¡¡Muchísimas Gracias!!!

Para que quede para otros...

using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;

[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
public interface IClass1
{
int Sumar(int N1, int N2);
string ToString();
}


public class Class1 : IClass1
{
int IClass1.Sumar(int numero1, int numero2)
{
return numero1 + numero2;
}
}
Respuesta Responder a este mensaje
#7 Guillermo guille
07/01/2008 - 18:46 | Informe spam
De todas formas, la interfaz que se usa para acceder a la clase no necesita
ningún aributo, al menos si lo has indicado en el AssemblyInfo.
Yo suelo usarlo como te indiqué antes, ya que siempre me funciona y mantiene
la compatibilidad binaria, es decir, si modificas la DLL de .NET y no
cambias las interfaces existentes en las versiones anteriores, los EXE de
VB6 que ya estén compilados seguirán funcionando sin necesidad de tener que
volver a compilarlos... si no se tenía eso en cuenta, es lo que provocaba
las famosas "DLL Hell"

Nos vemos
Guillermo

Microsoft MVP Visual Basic desde 1997
Tus consultas en los foros del Guille: http://foros.elguille.info/


"Gonzalo Rodríguez Carrera" wrote in message
news:
Ya está. Cambié la interfaz a otra clase y ya funciona.
¡¡¡Muchísimas Gracias!!!

Para que quede para otros...

using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;

[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
public interface IClass1
{
int Sumar(int N1, int N2);
string ToString();
}


public class Class1 : IClass1
{
int IClass1.Sumar(int numero1, int numero2)
{
return numero1 + numero2;
}
}
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida