Crear una DLL con Visual Basic

Escrito por Mauro Rondinelli el Martes 08 de Mayo de 2001 a las 00:00hs

Sube Tu Queja

Hoy explicare como crear DLL (Dinamic Link Library) bajo Visual Basic, primero y principal explicare para que nos puede llegar a servir el uso de una DLL, como caracteristica principal nos permite agrupar el codigo de nuestro programa en modulos separados, cada uno con una funcion especial.

Por ejemplo un programa para visualizar graficos puede llegar a tener una DLL para trabajar con cada archivo grafico en particular, por ejemplo formato_gif.dll puede llegar a tener todas las funciones para trabajar con este tipo de archivos (GIF), formato_jpg.dll para trabajar con imagenes JPG y etc.

Esto hace que la programacion sea mas sencilla y menos trabajosa a la hora de solucionar problemas o crear nuevos programas dado que una DLL puede ser utilizada por varios programas a la ves.

Bueno mucha teoria, vamos a la practica y al codigo, este articulo consta de dos partes generales una es la creacion de la DLL y la otra la creacion de un programa que utilice esta DLL.

Creacion de la DLL

Abrimos Visual Basic y seleccionamos el tipo de proyecto que vamos a crear, en este caso DLL ActiveX

Al elegir esta opcion nos aparecera la ventana de codigo con el archivo creado por defecto llamado Class1, este archivo es un modulo de clase que contendra las funciones de nuestra DLL.

La funcion de nuestra DLL sera la de crear una caja de mensaje (MsgBox) personalizada. Para esto tenemos que agregar a nuestra DLL un formulario (Menu Proyecto > Agregar Formulario). En este agregamos un control Label, un Image y un CommandButton, al control Image le ponemos alguna imagen y la distribucion de los controles la hacemos mas o menos asi...

Ahora le modificamos algunas propiedades, al formulario (Form1)

BorderStyle = 3 Fixed Dialog
StartUpPosition = 2 CenterScreen
A el control Command1 le ponemos

Caption = Aceptar
Ahora dentro del codigo del formulario ponemos

Private Sub Command1_Click()
Unload Me
End Sub


Lo que hace este codigo es descargar el formulario cuando se hace click en el boton Command1, ahora cerramos el formulario, abrimos Class1 y dentro de este agregamos el siguiente codigo...

'Creamos un Sub con dos parametros del tipo string (cadena de texto)
Public Sub MostrarMensaje(Titulo As String, Mensaje As String)

'definimos una variable con la cual haremos referencia al formulario
Dim Formulario As Form

'le decimos a VB que Formulario sera igual al Form1
Set Formulario = New Form1

'establecemos la variables
'en el caption del formulario ponemos el titulo pasado como parametro
Formulario.Caption = Titulo
'en el label del control label1 ponemos el mensaje
Formulario.Label1.Caption = Mensaje
'mostramos el formulario de forma modal
Formulario.Show vbModal

End Sub

Una ves hecho esto modificamos la propiedad Instacing de Class1 a 6 GlobalMultiUse, lo que hace esta propiedad es no tener que definir previamente una variable para tener que usar esta Clase.

Lo que haremos ahora es guardar y compilar nuestra DLL (Menu Archivo > Generar ...). Una ves hecho esto ya tenemos la DLL lista para ser utilizada.

Creacion del Programa que use nuestra DLL

Ahora crearemos un programa que haga uso de nuestra DLL para ello hacemos click en Archivo > Nuevo Proyecto y elejimos EXE Standar, una ves hecho esto vamos al menu Proyecto > Referencias y elegimos nuestro proyecto creado anteriormente en este caso Proyecto1.

Importante!!! Debemos asegurarnos que el programa que usa la DLL que creamos no se llame tambien Projecto1 por que sino al agregar la DLL se producira un conflicto de nombres lo que originara un error.

Al hacer esto estamos vinculando nuestro programa con la DLL creada y podemos utilizar todas sus funciones, en este caso utilizaremos la unica funcion que tiene llamada MostrarMensaje para ello en el form1 agregaremos un CommandButton y dentro del codigo pondremos lo siguiente

Private Sub Command1_Click()
mostrarmensaje "titulo", "mensaje"
End Sub


Bueno, ahora corremos nuestro proyecto, hacemos click en el boton y si todo salio bien veremos el cuadro de mensaje creado por nosotros.


comentarios



  1. 298274818336917502974 From the official [URL=http://www.onlinemuslimitems.com/]Muslim Abaya[/URL] website of anticipated [URL=http://www.onlinemuslimitems.com/]Muslim Items[/URL] Star Wars The [URL=http://www.onlinemuslimitems.com/]Muslim hijab[/URL] Old Republic comes [URL=http://www.onlinemuslimitems.com/]Islamic abaya[/URL] this new video where the [URL=http://www.onlinemuslimitems.com/]Muslim scarf[/URL] game designers [URL=http://www.onlinemuslimitems.com/]Buy Muslim Abaya[/URL] tell us a little about [URL=http://www.onlinemuslimitems.com/]Cheap Muslim Abaya[/URL] the 2 different [URL=http://www.onlinemuslimitems.com/]Buy Muslim Items[/URL] classes find Sith characters [URL=http://www.onlinemuslimitems.com/]Cheap Muslim Items[/URL] in the game, The [URL=http://www.findnike.com]Islamic hijab[/URL] Inquisitor Sith [URL=http://www.onlinemuslimitems.com]Islamic scarf[/URL] and Sith Warrior. They explain a lot of [URL=http://www.onlinemuslimitems.com]Islamic Items[/URL] pictures as designed [URL=http://www.onlinemuslimitems.com]Muslim wear[/URL] these characters and [URL=http://www.onlinemuslimitems.com]Muslim clothing[/URL] their characteristics [URL=http://www.onlinemuslimitems.com]Muslim wear Pas Cher[/URL] one more devoted [URL=http://www.onlinemuslimitems.com]Muslim wear[/URL] to the use of force [URL=http://www.onlinemuslimitems.com]Muslim clothing[/URL] powers and one more [URL=http://www.onlinemuslimitems.com/]Muslim Items For Sale[/URL] dedicated to close combat.



  2. Muy buena informacion, quisiera que me ayudaran con un temita tengo en vb. una solucion que tiene 3 proyectos y uno de ellos es el acceso a datos. Alli se encuentra el archivo app.config donde tengo mi cadena de conexion. Al momento de crear el instalador el proyecto acceso a datos se crea como una dll. Eso es lo que quiero pero queria que encapsule todo menos el archivo app.config que puede ser editable. Alguien me puede ayudar a resolver esto? De antemano muchas gracias.



  3. Cordial saludo. Muy interesante este tema.

    Me gustaria saber como puedo trabajar con la API de una plataforma. (VTApi.dll) con visual basic 6.0, debo desarrollar un software de este tipo y no tengo ni idea de como hacerlo. help???



  4. Muchas gracias por tu aporte es muy bueno el ejemplo.
    yo necesita un ejemplo para hacer mis dll de tipo consulta para tablas pequeñas en mis proyecto. esto me va servir de guia.
    saludos.



  5. Hola,me funciona correctamente, pero ahora quiero hacer es compilar paso a paso el proyecto de la dll, junto con el proyecto .EXE, Como le puedo hacer para realizar esto, pues logrando esto podre determinar si existe algun error cuando cree una dll mas compleja.

    Saludos.



  6. me funciono a la primera



  7. MUY BIEN AHORA SE QUE LA DLL ES UN PROGRAMA DE DISEÑO
    COMO SI FUERA UNA CLASE ESTO RESUELVE ALGNAS DE LAS
    DUDAS QUE TENIA REFERENTE A LAS DLL



  8. Como puedo hacer que una dll con visual basic 6.0 me retorne un valor string, es decir..desde visual basic le envio un valor numerico a una dll, y la dll debe de retornarme un valor string...
    Alguien puede ayudarme?...
    Gracias de antemano.

    Saludos



  9. Excelente Informacion. Funciona de 10!

    Saludos



  10. Tener cuidado de que la DLL no este apuntada a otra conexion existente y que esta este restringida a ese proyecto.
    Fijar tambien que las variables de conexion de ODC data grid no esten activadas... muchos diran que tiene que ver, pero aunque no lo crean si tiene que ver.
    La explicacion me la guardo... secreto profesional jajaja

    salu2



  11. Hola como estan todos, excelente tutorial, pero me gustaria que propusieran otros ejemplos porque busco y busco y nada mas encuentro el mismo tutorial, al cual no le pongo peros, ya que esta muy bien explicado, se los agradeceria.

    Para los que no les funciono, pues yo utilizo Visual Basic 6.0 en español y no he tenido ningun problema, si alguien desea tener el programa pues visiten mi pagina y haganme su peticion hay en la misma pagina, coloquen sus datos y me pondre en contacto con ustedes.

    Mi pagina es:

    http://mx.geocities.com/emgiad

    Gracias y hasta pronto



  12. Está genial esté ejemplo la verdad es que está muy bien explicado...

    SALUDOS



  13. muy buena la explicacion m la probe y me funciono ! pero quiero hacer una dll para conectarme a una base de datos sql y no me sale !! alguin me podria ayudar ?? se lo agradeceria bastante !!



  14. porfavor alguien si me puede enviar el programa wordperfect 8.0 o el visual basic oe que me de un link para descargarlo porfa se los agradeseria bastante



  15. Muy buen ejemplo, facil de entender, me funciono correctamente.
    Gracias.



  16. Muy buen ejemplo, Me funcionó a la Primera y creo que a todos nos has resuelto muchas dudas sobre el uso de dll.



  17. lo importante es hallar la dll publica, y la ingresas al GLobalSErf del Conjunto de dll oles..lugo te vas al regedit...buscas el valor Regidll y cambias el valor 4 por el de 0..asi no tendras más problemas con las dll. :) la unica razonn de trabajar con dll es el ahorro y limpieza de codigo en nuestros progrmas. Ah otra cosita..trabajen en ingles..el español jode mucho al programar! no estan dificil es cuestion de acostumbrase..recuerden q chicos de 3 años jeugan vvideojuegos de en ingles sin saber nada de ese idioma...veanlo así ...los programas de programaion en español son problematicos :)



  18. gracias!!! :D



  19. Gracias! Había probado con otra DLL/clase/form mucho más complejo y no me funcionaba. Siguiendo estos pasos va perfecto. Ahora podré mirar en mi DLL qué es lo que no iba bien.



  20. Excelente mini guia para entender el funcionamiento basico de una dll me funciona a la primera cero errores ya que en la guia explicas los posibles errores que puden surgir de mi parte muchas gracias y te pido otra de estas guias.



  21. probe el ejemplo y funciono.....buenisima explicacion....

    una consulta se pueden crear controles o componentes para vb 6.0



  22. Sta buena la xplicacion, me salio error a la primera, pero cambiando el nombre del proyecto1 me funciono bien, a ver si colocan mas ejemplos... :)

    Rr



  23. hola
    probe el siguiente código, pero me manda cuando genero el dll, exactamente en:

    set formulario = new Form1

    en Form1 me lo sombrea y me manda el siguiente error de compilacion:
    NO se ha definido el tipo definido por el usuario, allí que esta pasando???

    Ya probe todos los comentario y nada me sigue mandando el mismo error allí.

    Hasta pronto.

    Si alguien sabe, espero pronta contestación.

    Gracias



  24. Muy bueno el tutorial, se entiende la idea de una DLL.Muchas Gracias



  25. Muchas gracias Mauro, me ha ayudado bastgante este ejemplo para la creacion de una DLL, con el ejemplo que nos ayudas a crear me ha quedado muy claro y me quedo bien a la primera. MUCHAS GRACIAS!!!!



  26. el tutorial está de pelos... sirve al 100%... se agradece



  27. Exelente explicación!



  28. Hice la prueba y funcionó de primera. Creo que es bueno recordar que cuando se genera el Paquete de la Aplicación, es necesario que figure el componente de la DLL, ya que esta no forma parte del ejecutable.
    Que diferencia hay entre la DLLActiveX y ControlActiveX?



  29. Hola,muy bueno eso decrear DLL, quisiera saber si alguien sabe como hacer para llamar a la DLL , osea yo quiero que desde el ejecutable busque el lugar especifico de la dll y use sus funciones...

    Gracias.- si te interesa visual visita www.todovisual.ya.st



  30. este tutorial me sirvio de mucho y tambien a ti estoy seguro que te servirà si no le entiendes imprimelo y en un rato libre leelo con calma para que le entiendas mejor
    bueno adios bye



  31. Muy bueno. Saludos



  32. MUY BUENO, NO ME FUNCIONO LA 1° VEZ PERO USANDO LOS COMENTARIOS QUE AGREGARON LO PUDE CREAR, MUCHAS GRACIAS!!!!!!!



  33. Lo corrí, y funcionó de una. Perfecta la explicación.



  34. bien echo man me salio la primera vez que lo hice funcionar, buena explicacion. Yo tambien lo tengo en español



  35. Que lindo me salio a la primera y sin errores... muchas gracias ya entendi la idea de DLL



  36. No me funciona la prueba y no se porque. Cuando intento correr la apliacion que cree
    utilizando la DLL como se explica en el ejemplo, me dice:

    Compile Error: Sub or Function not defined.

    Esto evidentemente es porque no encuentra el procedimiento, pero la clase esta como GlobalMultiuse y la referencia al a la DLL creada tambien.



  37. En el proyecto que yo hice no reconocía el nombre de la función en la DLL. El problema era que no había hecho esto: "modificamos la propiedad Instacing de Class1 a 6 GlobalMultiUse".



  38. Excelente, muchas gracias, me ayudo a entender como crear dll con entrada y salida de datos. Mi duda ahora es como se puede crear un programa que me reconozca los dll que yo vaya creando de manera independiente de visual basic, es decir, un programa ya compilado.
    Si hay algún programador que me pueda a aclara esta duda se los agradeceré muchisimo.

    Saludos...



  39. A mi me funciono bien, algunos problemas al principio, sobre todo con los nombres de los formularios y proyectos, que siempre usa genericamente form1 y proyecto1 y se pisan.
    En cuanto a registrar la dll, en mi caso no fue necesario, creo que por que la genere en el mismo directorio en donde hice el proyecto principal. Sino hay que registrarla con regsvr32 (se usa: regsvr32 proyecto1.dll, mejor hacerlo todo en el directorio system32 del windows)
    Muy bueno el ejemplo y espero haber ayudado a algun otro
    Salu2



  40. Ami si me funciono claramente dice que en menu

    Proyecto > Referencias

    y que nuestro proye4cto no se llame Igual que la DLL jejej que chingon no? (Que fresa no?)



  41. como registro el dll en regsvr32?

    ya que a mi tampoco me resulto



  42. tienen q registrar la dll primero con el regsvr32
    saludos



  43. A mi tampoco me funciono. El problema es que no encuentra el punto de entrada a la DLL.

    Yo tengo también la versión de Visual basic en español, será ese el problema?



  44. muy buena la ayuda que brinda la pagina www.elguruprogramador.com.ar se entiene bastante las explicaciones y los elemplos... un abrazo.



  45. La verdad es que probe este ejemplo para crear la DLL y no me funciono. El problema es que no encuentra el punto de entrada a la DLL.

    Yo tengo la versión de Visual basic en español y me he dado cuenta que algunas cosas no funcionan.

    Gracias de todas formas. Si encuentran una solución, favor de avisarme al Mail.
    maoa17@gmail.com.

agregar comentario


Se permiten las etiquetas HTML <b>, <i> y <p>. Si ingresa alguna dirección web o dirección de email serán convertidos en enlaces automáticamente.





publicidad

API DE FACEBOOK
GOOGLE CALENDAR API
GOOGLE MAPS API