Visual Basic - Cómo se carga libreria DLL

Life is soft - evento anual de software empresarial
 
Vista:

Cómo se carga libreria DLL

Publicado por gerardo2m (2 intervenciones) el 16/08/2009 13:36:22
Estoy aprendiendo como elaborar un DLL y hacerlo funcionar con una rutina EXE.

Empece con un ejemplo muy sencillo.

La rutina DLL simplemente es para sumar dos números y es la siguiente:

***************
Public Class Suma2Numero
Public Function suma(ByVal valor1 As Double, ByVal valor2 As Double) As Double

suma = valor1 + valor2

End Function
End Class
***************
La rutina EXE es un cuadro de dialogo (Form1) con 3 cajas de texto para valor1, valor2, resultado, y un botón de acción para ejecutar.

En la rutina del botón para ejecutar tengo lo siguiente:

****************************
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim valor1 As Double
Dim valor2 As Double

valor1 = Val(TextBox1.Text) ' valor1 para suma
valor2 = Val(TextBox2.Text) ' valor2 para suma

TextBox2.Text = Suma2Numero(valor1, valor2) 'caja de resultado de la función DLL

End Sub


End Class
******************

En el menú PROYECTO->ADD REFERENCE->RECENT, ya está asignada la ruta del archivo DLL.

Como enlazo el archivo DLL al programa EXE.

Saludos y gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cómo se carga libreria DLL

Publicado por Rolando (115 intervenciones) el 17/08/2009 15:54:11
Primero GENERAS tu dll , porque esta en un proyecto dll verdad , luego por lo general lo copias en una ruta fija que siempre UTILIZARA tu exe para invocar los metodos de esta dll.

Bien entonces en tu proyecto exe , tienes que instanciar a tu dll (ya generada previamente) ,

Menu >>> Proyecto >>> Referencias >>> buscas a tu dll en la ruta que la copiaste.

Una vez referenciado , tienes que instanciar.

(Antes de todo esto se supone que en tu dll tienes clases y en tus clases metodos , en ese orden)

Bien entonces.

Creas una variable global que sera de tipo DLL y llamaras a una de las clases que hallas creado.

Global ObjDLL as new MyDLL.Clase1

y cuando quieras usar la funcion suma que seria un metodo de tu clase.

entonces simplemente seria asi.

ValorSuma = ObjDLL.suma (numero1, numero2)

y LISTOOO !!!!

Asi es como crear Codigo ENCAPSULADO , Felicitaciones este es un buen metodo , investiga mas sobre publicacion de componentes , este codigo de tu dll puede publicarce en un servidor de componentes y etc etc etc y puede ser llamado para el desarrollo de distintas aplicaciones para VB ASP , etc etc.

Bien Suerte Saludos

Rolando Lau
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cómo se carga libreria DLL

Publicado por jaime guerrero (361 intervenciones) el 17/08/2009 18:05:38
si no me equivoco estas usando vb.net

luego de agregar la referencia, la agregas a tu clase mediante la sentencia using al inicio de la clase

using NameSpace.Suma2Numero

y cuando la quieres instancias

dim Suma2Numero x as new Suma2Numero ()

Te recomiendo que para la proxima pongas tu pregunta en el foro de visual basic .net
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cómo se carga libreria DLL

Publicado por Rolando (115 intervenciones) el 17/08/2009 18:52:44
No mi estimado colega Jaime Guerrero.

Este tipo de metodologia es aplicable en VB 6.0 , generando tu dll de proyecto DLL de VB6.0 o de VB .NET puedes referenciar y luego instanciar en proyecto exe tanto en vb 6.0 como en .NET. o en asp o asp .net.

Es una metodologia interesante.

en 6.0 en tiempo de desarrollo tendrias que tener un GRUPO de proyectos y trabajar el EXE y la DLL a la vez . eso se puede en VB 6.0

Crear proyectos en NCAPAS , DLL de BD , DLL de Negocio y Cliente el EXE simplemente se pasan paramentros.

luego como explique publicarse en un servidor de componentes , esto en COM+

Saludos

Rolando Lau
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cómo se carga libreria DLL

Publicado por jaime guerrero (361 intervenciones) el 17/08/2009 23:07:58
lo que dices del servidor es siempre y cuando tengas un servidor de componente.

Cuando me refiero a usar .net en vez de visual 6 es la forma de hacer uso de la libreria

en visual 6 solo referencias y luego dim objeto as libreria.metodo o con un create objet

pero en .net tienes que hacer un using namespaces.clase (imports si es C#) y luego hacer la instancia dim objeto as new clase()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cómo se carga libreria DLL

Publicado por Rolando (115 intervenciones) el 18/08/2009 21:11:22
Es lo mismo solo cambia los nombres de los metodos de instanciamiento....entre VB.6 y .net
servidor de componentes SIP es una sugerencia.... pero no necesariamente limitante...puede estar la dll en el system32 local. o en una ruta especifica.

Bueno en conclusion SI es posible implementar dll en vb 6.0

Saludos

Rolando Lau
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cómo se carga libreria DLL

Publicado por jaime guerrero (361 intervenciones) el 18/08/2009 21:29:02
de hecho si se puede usar dll en vb6, pero gerardo lo quiere hacer pero desde .net. Cuyo manejo de librerias es distinto al 6, por la parte del using.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cómo se carga libreria DLL

Publicado por Rolando  (115 intervenciones) el 18/08/2009 22:01:15
Yeah !!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cómo se carga libreria DLL

Publicado por gerardo2m (2 intervenciones) el 19/08/2009 02:37:32
Muchas gracias a Rolando y Jaime, pondre en practica sus comentarios y les aviso el resultado. Estoy usando visual basic 2005.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar