Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: skapunky en 30 Septiembre 2006, 16:40 pm



Título: Programar Dll
Publicado por: skapunky en 30 Septiembre 2006, 16:40 pm
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:

Código:
Public Function Suma(num as long) As long
Suma = (num * (num + 1)) / 2
End Function

codigo llamada: (+ prueba de esta)

Código:
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. >:(




Título: Re: Programar Dll
Publicado por: Zeroql en 30 Septiembre 2006, 19:42 pm
tienes que declararla asi:
Código:
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.


Título: Re: Programar Dll
Publicado por: skapunky en 30 Septiembre 2006, 20:04 pm
con lo que me has dicho sale un error aki:

Código:
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


Título: Re: Programar Dll
Publicado por: hexabinarios en 30 Septiembre 2006, 20:40 pm
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.


Título: Re: Programar Dll
Publicado por: 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?


Título: Re: Programar Dll
Publicado por: Hendrix en 30 Septiembre 2006, 20:52 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



Título: Re: Programar Dll
Publicado por: WarGhost en 30 Septiembre 2006, 20:55 pm
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  :-[


Título: Re: Programar Dll
Publicado por: Hendrix en 30 Septiembre 2006, 21:15 pm
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).



Título: Re: Programar Dll
Publicado por: Syphroot en 1 Octubre 2006, 03:33 am
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