Convertir aplicación en dll
Hola amigos.
Estoy tratando de convertir una aplicación en dll pero no logro hacer que funcione desde una aplicación que la carga en forma dnámica. Esta aplicación cuenta con varios forms, accesos a BBDD y archivos planos. No tengo idéa de como hacerla funcionar. Necesito que sea dll para luego poder incorporarla como plugin. Uso Delphi 7. Gracias por cualquier ayuda. |
Cita:
¿Algún error? ¿Qué tipo de error? ¿Cómo estás intentando cargar tu aplicación (DLL)? ¿Has ejecutado paso a paso? ¿En qué momento falla o hace lo que no debe? ... |
Hola Neftali.
La dll lacargo asi: Pero luego de eso no se que debo hacer. Quisiera que el form principal de la dll se ubique en el panel de la aplicación que la invoca. Me falta algun ejemplo de como hacerlo. |
Depende de la aplicación que la invoca. Supongo que habrá algún manual que diga cómo deben ser las DLL que usa.
|
No, la aplicación la estoy empezando a desarrollar yo.
|
Pregunto, tengo que exportar el FormCreate de la dll???
|
Tienes que definir el API tú mismo: Qué funciones y procedimientos publicar, qué pretende hacer con cada uno, etc.
Como te veo muy perdido, deberías empezar leyendo la documentación acerca de cómo crear una DLL y utilizarla. |
Si no lo has hecho ya, échale un vistazo a esta entrada en mi blog.
Ahí se explican varias opciones, entre ellas, la que tú estás intentando aplicar a tu aplicación. en tu caso, la que está etiquetada como: "EXE + DLL con Carga dinámica(El EXE puede ser con o sin BWRP)" Al final tienes los ejemplos con código fuente para que puedas probar. el que se aplica en tu caso, sería algo así:
Las definiciones serían estas:
En este caso la DLL SUMAS.DLL sería la que tú estás programando y el método Sumar2, el equivalente al que deberías programar tú para que se muestre el formulario que quieres. |
Al final de esa entrada, tienes algunos links a otras, sobre cómo trabajar con plugins.
|
Neftali, ya había leído tu artículo y he trabajado con dll´s que exportaban algunas funciones.
Lo distinto aca es que es una aplicación que ya está funcionando como .exe y necesito poder ejecutarla desde una app. Esta app tiene el formcreate y formshow donde hago inicializaciones y lectura de un par de ini´s. No se si tengo que exportar el formcreate y formshow ó que hacer para que la misma arranque dentro de la nueva app que la instancia. |
Para hacer eso, la dll no debe tener el formato de una aplicación, sino un formulario. Puedes tener los formularios que quieras. Te pongo un ejemplo:
La dll:
En la aplicación que ejecuta la dll:
Saludos. |
Gracias Escafandra.
Ahora todos los formularios comparten un DataModule con distintos objetos de BBDD, de que mopdo se pueden compartir. Lo mismo sucede con variables publicas que se encuentran en el formulario principal. Gracias |
Gracias a sus aportes voy progresando.
Ya entendi el mecanismo y pude acceder a los distintos forms. La cosa ahora es como puedo hacer para que desde la app host, le indique a cada form de la dll que se muestre dentro de un TPanel que funciona como contenedor, para que se muestren dentro de el (owner). Espero me hallan entendido. Gracias |
Dirá que eso se puede hacer de forma similar a como se hace con los forms "normales" (sin que estén en una DLL), utilizando el Parent del form que estás abriendo.
Revisa estos hilos: Form dentro de otro Se puede colocar un form dentro de un TPanel Form contenedor dentro de otro |
La franja horaria es GMT +2. Ahora son las 22:20:40. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi