Programar Dll

Iniciado por skapunky, 30 Septiembre 2006, 16:40 PM

0 Miembros y 1 Visitante están viendo este tema.

skapunky

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. >:(


Killtrojan Syslog v1.44: ENTRAR

Zeroql

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.
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#


skapunky

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
Killtrojan Syslog v1.44: ENTRAR

hexabinarios

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.

WarGhost

alguien sabe alguna forma de por ejemplo agregar una dll y no esta no se cierre el programa?
¿Qué culpa tengo yo de tener la sangre roja y el corazón a la izquierda?

Hendrix

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

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

WarGhost

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  :-[
¿Qué culpa tengo yo de tener la sangre roja y el corazón a la izquierda?

Hendrix

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).

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

Syphroot

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