SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: erickgb en Viernes 6 de Octubre de 2006, 21:50

Título: Dll
Publicado por: erickgb en Viernes 6 de Octubre de 2006, 21:50
Que tal, necesito ayuda para ejecutar una dll desde una aplicación común. Ojalá y me pudiesen ayudar.

Gracias

erickgb
Título: Re: Dll
Publicado por: Eternal Idol en Viernes 6 de Octubre de 2006, 22:48
Una DLL no se ejecuta, se carga en memoria y se pueden acceder a sus funciones exportadas. Para cargar una DLL usas LoadLibrary para obtener las direcciones de sus funciones exportadas usas GetProcAddress.
Título: Re: Dll
Publicado por: erickgb en Viernes 6 de Octubre de 2006, 23:28
Pero si mi DLL consta de una aplicación en la que manejo botones y acciones, puedo ejecutarla?

Muchas Gracias
Título: Re: Dll
Publicado por: RadicalEd en Viernes 6 de Octubre de 2006, 23:50
Cita de: "erickgb"
Pero si mi DLL consta de una aplicación en la que manejo botones y acciones, puedo ejecutarla?

Muchas Gracias
Nopi, como te dice Eternal_Idol puedes llamar a las funciones por medio de otro LP que llamen a esa aplicación gráfica, pero de ninguna forma ejecutar la DLL por ella misma.
Título: Re: Dll
Publicado por: erickgb en Viernes 6 de Octubre de 2006, 23:56
Tienes alguna referencia de un ejemplo de declaración de DLL con su respectiva llamada a las funciones? por favor

Gracias
Título: Re: Dll
Publicado por: Eternal Idol en Sábado 7 de Octubre de 2006, 00:50
Aca tenes un ejemplo:
http://msdn.microsoft.com/library/default....loadlibrary.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/loadlibrary.asp)

Tambien podes hacer que la DLL maneje botones y acciones, incluso podes hacer que se desencadene todo sin llamar a ninguna funcion (usando el DllMain) pero una DLL no es un proceso, ni un programa, se carga en la memoria de un proceso ya existente.
Título: Re: Dll
Publicado por: erickgb en Lunes 9 de Octubre de 2006, 21:44
y cómo lo hago? no tengo ni idea. Lo que quiero hacer es por medio de una función crear una forma dentro de la dll y manupular entonces todos sus objetos (botones y grids).

Muchas gracias
Título: Re: Dll
Publicado por: Eternal Idol en Lunes 9 de Octubre de 2006, 21:48
Cita de: "erickgb"
y cómo lo hago? no tengo ni idea. Lo que quiero hacer es por medio de una función crear una forma dentro de la dll y manupular entonces todos sus objetos (botones y grids).

Muchas gracias
Lo haces exactamente igual que si fuera un ejecutable (el codigo es el mismo) y despues exportas la funcion que quieras. Una diferencia que te mencionaba antes es que no tenes WinMain sino DllMain ...
Título: Re: Dll
Publicado por: erickgb en Lunes 9 de Octubre de 2006, 22:25
Y como le hago con un ejecutable?...vaya que estoy perdido.

Gracias y saludos
Título: Re: Dll
Publicado por: Eternal Idol en Lunes 9 de Octubre de 2006, 23:30
Cita de: "erickgb"
Y como le hago con un ejecutable?...vaya que estoy perdido.
No se, yo no trabajo con Borland ... busca en la ayuda sobre VCL.
Título: Re: Dll
Publicado por: Enko en Martes 10 de Octubre de 2006, 00:00
basicamente tienes que poner en el proyecto que quieres hacer una DLL, agragas el formulario que necesitas y luego con la palabra reservada "exports" exportas las funciones de la DLL.
Por supuesto que si quieres trabajar con formularios, tendrás que crearlos y destruirlos en tiempo de ejecucion, es decir, dinamicamente.
Título: Re: Dll
Publicado por: erickgb en Martes 10 de Octubre de 2006, 20:38
Tendrán alguna liga o ejemplo que me iluistre lo que me acaban de decir?, tendrán también algún código que me sirva para crear formas en tiempo de ejecución?

Nuevamente muchas gracias

Saludos
Título: Re: Dll
Publicado por: Enko en Domingo 15 de Octubre de 2006, 03:41
Cita de: "erickgb"
Tendrán alguna liga o ejemplo que me iluistre lo que me acaban de decir?, tendrán también algún código que me sirva para crear formas en tiempo de ejecución?

Nuevamente muchas gracias

Saludos
disculpa por responder tan tarde, no manejo C++Builder, en esta pagina tenes un ejemplo sobre esto en Delphi pero no creo que te será muy dificil adaptarlo.
http://delphi.about.com/od/windowsshellapi/a/dll_basics.htm (http://delphi.about.com/od/windowsshellapi/a/dll_basics.htm)