Hola a todos... El otro dia quise hacer una dll en visual basic con los DLL activex... la compilo y tal y le cabio el nombre al proyecto...
Luego abro un nuevo proyecto exe. La añado en referencias.. hago la llamada y me sale un mensaje de algo de la lectura de la primera funcion.. vaya que no va.
Codigo dll:
Public Function Suma(num as long) As long
Suma = (num * (num + 1)) / 2
End Function
codigo llamada: (+ prueba de esta)
Private Declare Function Suma Lib "sumatorio.dll" (ByVal num As Double) As long
Private Sub Command1_Click()
MsgBox Suma(5)
End Sub
- Alguien sabe porque no funcionan las dll's en visual basic?? saben algun programa para crear dll's que no sea el metodo ese del link.exe de la pagina de elguille?
Si realmente no va bien el compilar dll's en visual basic por defecto.. yo digo: vaya m****de programa. >:(
tienes que declararla asi:
Private Declare Function Suma Lib "sumatorio.dll" (ByVal num As Double) As long
private form_load()
set suma= new suma
end sub
asi debe funcionarte.
con lo que me has dicho sale un error aki:
Set Suma = New Suma
marca "new suma" y pone:
No se ha definido el tipo definido por el usuario.
De todas formas al poner set suma = new.... Aqui me sale un scrollbar y no aparece "suma"... aparece "sumatorio" que es el nombre de la Dll y si pongo este me salta error diciendo que se esperava un tipo definido por el usuario y no un proyecto.
Saludos. Gracias
Yo creo que agregaba la DLL en referencias, pero ojo que cuando compilas la DLL el nombre del proyecto sea el correcto porque despues cuando vallas a agregar al referencia te va a aparecer cualquier cosa.
Saludos.
alguien sabe alguna forma de por ejemplo agregar una dll y no esta no se cierre el programa?
Cita de: WarGhost en 30 Septiembre 2006, 20:49 PM
alguien sabe alguna forma de por ejemplo agregar una dll y no esta no se cierre el programa?
Expliakte mejor, no lo entendi... :-\ :-\
Salu2
yo agrego una dll al proyecto por ejemplo con referencias pero si la dll no existe o no esta en el sitio adecuado el programa se cierra hay alguna forma de avitarlo?
Sorry :-[
Es mucho mejor ahcer DLL's nativas kom el texto de elguille y si asi no existen kreo que no pasa nada (se declaran komo decalrar API's, no necesitas agregarlo a las referencias).
Tu programa falla porque el vb no crea dll normales o nativas como algunos llaman, si no que las genera Dll AciveX y no pueden ser declaradas como si de una API se tratara... como dice Hendrix, en la web del guille hay un articulo sobre como truquear tu VB y hacer Dll normales y poder llamarlas como si de una API se tratara, o sea con Declare, el no encontro este truco, si no que lo encontro en otro lugar y simplemente lo tradujo al espa~ol, el autor original es otra persona que cita en el articulo. Y si, si la API no es encontrada no lanza ningun error ni nada, simplemente se salta la instruccion sin hacer nada.
http://www.elguille.info/vb/avanzado/crear_dll_windows_con_vb6_explicado.htm
saludos