Crear un ensamblado en C# .NET y usarlo en VB6

El siguiente ejemplo muestra como crear un ensamblado y luego usarlo en una aplicación visual basic.
Creando el Ensamblado
1.- Lo primero es crear un nuevo proyecto C# de tipo Biblioteca de Clases, al cual le daremos por nombre AssemblyDemo.


2.- Al proyecto creado le agregaremos un control de usuario al que llamaremos SayHelloControl



3.- Al control creado le agregaremos un botón con la siguiente funcionalidad.

private void HelloButton_Click(object sender, EventArgs e)
{
            MessageBox.Show("Hello", "Message", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}

4.- En ell explorador de soluciones, haz click sobre el proyecto con el botón derecho del mouse y elige propiedades. En la ventana que acabas de abrir ve a la pestaña Generar, en Configuración elige Todas las conf, por último selecciona Registrar para Interoperabilidad COM.



5.- En el explorador de soluciones expande la carpeta Properties, dentro de ella se encuentra la clase AssemblyInfo. En esta clase se debe modificar la siguiente linea como sigue
[assembly: ComVisible(true)]

6.- El siguiente paso es firmar el ensamblado.

Usando el Ensamblado en VB6

Una vez que haz generado la dll de tu proyecto en .NET, debes registrarlo para poder usarlo en vb6, esto lo haces usando regasm.exe, este programa es una utilidad del Simbolo de Sistema SDK .Net Framework.

1.- Registrar el Ensamblado
  • En el símbolo del sistema, escribe el siguiente comando:
    regasm  <nombre de archivo dll> /tlb
En el siguiente ejemplo registra la libreria AssemblyDemo

regasm "[ubicación de la dll de tu proyecto]/AssemblyDemo.dll" /tlb

2.- Arrastra la dll a la carpeta  /Windows/Assembly

Ahora la dll generada esta disponible para usar en las referncias de vb6, ahora esta lista para poder usarla en tu proyecto.



El siguiente código muestra como crear una instancia en vb6 del control SayHelloControl contenido en AssemblyDemo
           

Dim sayHelloControl As VBControlExtender
Private Sub Form_Load()
    Set sayHelloControl = Controls.Add("AssemblyDemo.SayHelloControl", "sayHelloControl", Me)
    sayHelloControl.Visible = True
End Sub


Descargas:
Projecto vb6
AssemblyDemo
Nota Importante: Cuando la dll generada se esta usando en vb6 en el mismo pc que la hemos desarrollado, no es necesario firmarla ni trasladarla a la carpeta Assembly pues funciona igual, que no te deje engañar este funcionamiento, pues si no realizas los pasos mensionados tu dll sera inservible para usar en proyectos alojados en otros pcs.
   

Comentarios

Entradas populares