Que es un DLL?
Un DLL o Dynamic Link Library (Biblioteca de Vinculo Dinamica en español) es un archivo que contiene funciones o clases u otros recursos que pueden ser utilizados por una aplilcacion externa al DLL. Como lo dice su nombre, una aplicacion lo que hace es hacer un vinculo a la biblioteca y de esta forma puede hacer uso de funciones, procedimientos o metodos que se encuentren en esta biblioteca. Para darles un ejemplo, yo puedo tener un DLL con funciones matematicas, y en vez de escribirlas otra vez en el codigo de mi aplicacion, simplemente hago un vinculo al DLL que contiene las funciones matematicas y asi las puedo utilizar desde mi aplicacion. La ventaja de esto es que se recicla codigo, y el codigo es mas ordenado tambien, sin embargo asi tambien tiene desventajas.
Como crear un DLL
Creamos un nuevo proyecto de tipo “Libreria de clase” (mi visual studio esta en ingles pero miren la imagen de todos modos)
Despues de crear el proyecto nos va llevar al editor de codigo y automaticamente nos crea una clase con el nombre del proyecto. A partir de aqui podemos empezar a escribir las funciones. Escriban la siguiente funcion que aparece en la imagen, y cambien el nombre de la clase a “FuncionesMate”.
Aqui esta el codigo para darle copy y paste si no tienen ganas de escribir:
Public Class FuncionesMate
Public Function Sumar(ByVal a As Integer, ByVal b As Integer)
Return a + b
End Function
End Class
Despues que tengan ese codigo quiero que compilen el proyecto apretando F5 en el teclado. Lo mas probable es que les de un error pero no le hagan caso (el error dice que ese tipo de proyecto no se puede ejecutar porque es un dll, en realidad no es un error). Ahora ya tienen compilado el DLL que se deberia de encontrar en la carpeta debug/bin adentro de la carpeta del proyecto. Lo que sigue es hacer una referencia al DLL en una aplicacion de windows, esto es lo mismo que hacer un vinculo al DLL pero Visual Studio le llama referencia. Entonces creemos un nuevo proyecto de tipo “Aplicacion Windows” y en el explorador de soluciones le damos clicks derecho a nuestro proyecto y luego seleccionamos “Agregar Referencia” o “Add reference” en ingles. Vean la imagen.
Luego hacemos clicks en la pestaña que dice “examinar” o “browse” y buscamos el DLL que compilamos anteriormente y lo seleccionamos. Ahora delen doble click al formulario y agreguen esta linea de codigo antes que cualquier otra linea:
Imports ClassLibrary1.FuncionesMate
La palabra “ClassLibrary1″ puede variar, ese es el nombre que ustedes le hayan dado al proyecto, en este caso es el “Espacio de nombre” o “Namespace”. Despues de agregar esa linea en la funcion ya podes llamar las funciones que se encuentran en nuestro DLL de la siguiente forma:
Dim dll As New FuncionesMate
MessageBox.Show(dll.Sumar(3, 5))
pueden ponerle eso a un boton si quieren y les tiene que dar 8, lo que hace es nada mas sumar los numeros.´
Related posts:
{ 8 comments… read them below or add one }
Hola, estoy empezando con vs 2005 y tu nota fue de mucha ayuda, solo una pregunta.
al momento de importar la librería. ¿no se importaría nada más ClassLibrary1?, es decir:
imports ClassLibrary1
Al principio me marcaba error porque no encontraba la clase a la que hacía referencia, en este caso FuncionesMate.
Saludos
Yo en vez de usar “Imports ClassLibrary1.FuncionesMate” simplemente use el nombre que le dí a la DLL (MyFirstDLL.dll). Añadí un botón y al ejecutar la aplicación con F5 funcionó la suma de los dos valores. Este es el código de la aplicación que hice para probar la DLL:
Imports MyFirstDLL
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim dll As New Funciones
Dim resultado As Integer
resultado = dll.Sumar(1, 2)
MessageBox.Show(resultado.ToString)
End Sub
End Class
Estoy probandando una DLL con dos funciones. Tengo problemas cuando llamo a una función dentro de otra.
Cuando ejecuto una función como Restar() en el siguiente ejemplo funciona bien, pero si ejecuto la función Sumar() que hace un llamado a la función Restar() recibo el error: Object reference not set to an instance of an object.
Este el código que estoy usando en la DLL:
Public Class Funciones
Public Function Sumar(ByVal a As Integer, ByVal b As Integer)
Return a + Restar(100, b)
End Function
Public Function Restar(ByVal a As Integer, ByVal b As Integer)
Return a – b
End Function
End Class
El error da al llamar Sumar(). Al llamar solamente a la función Restar() funciona bien.
Alguna idea de como evitar ese error?
me parece muy bien como crear dll en visual net, espero que publique dll mas avansados.
Hender… debes de indicarle a la funcion que parametro es el que va a retornar.
Saludos
y seria posible llamr a una DLL de este tipo desde un programa echo con C++
y si es asi . Podrias expolicarme como?
gracias
Excelente Blog, estuve buscando como crear las benditas y nada no encontre solo una correcion al momento de importar la dll solo es necesario:
“Imports ClassLibrary1″
Porque sino al momento de invocar la clase van a obtener los metodos dentro de esta.
Muy buen post
Saludos, Lima – Perú
Muchas gracias
Ya había creado muchas librerías en DLL pero no las conseguía hacer funcionar.
Buen post