Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Usar TDataModule de un .exe en un DLL (https://www.clubdelphi.com/foros/showthread.php?t=58170)

Luzma 10-07-2008 22:06:22

Usar TDataModule de un .exe en un DLL
 
Hola a todos.

Estoy creando una aplicación que calcula algunas estadísticas de los alumnos de una escuela. Todo funciona de maravilla pero una escuela quiere que el programa tenga funciones adicionales que no están contempladas en el proyecto original.

Para hacer esto y después no complicarme la vida he decidido meter todas estas nuevas funciones en un DLL pero tengo un problema así que necesito algunas ideas y sugerencias.

En el .exe hay un DataModule que se encarga de establecer la conexión con la base de datos (Firebird) y me gustaría que esa misma conexión que se establece en el .exe se utilice en la DLL para no tener que volver a conectarme.

He intentado lo siguiente:

[exe]
---DataModule.h
---DataModule.cpp
[dll]
---form1.cpp
---form1.h

En form1.cpp (es la ventana que se encarga de mostrar los resultados) he incluido:

Código:

#include "..\exe\DataModule.h"
y con eso puedo enlazar los querys que se encuentran en form1 con la base de datos del DataModule pero no puedo utilizar las funciones que se encuentran en el DataModule porque me aparece un error (Unresolver external...)

Seguramente eso del #include no sea la manera correcta para enlazar el DataModule pero no se me ocurrió otra. :o

¿Alguna idea de cómo hacer el enlace y poder utilizar las funciones del DataModule en el dll?

Muchas gracias por su ayuda y un saludo para todos.

ContraVeneno 10-07-2008 23:45:29

En este enlace, viene explicado como cargar paquetes de manera dinámica (BPL), es un ejemplo en Delphi, pero seguro lo puedes utilizar en builder (en lugar de archivos DCP, serían archivos DCI).

En esa página en la parte de "Ejemplos prácticos" (Practical examples) puedes ver que el tercer ejemplo hace exactamente eso que tu quieres. Un DataModule que puedas usar tanto en la aplicación como en un dll. Al final, puedes descargar el código del ejemplo que explica.

Esto hace que cuando tu crees el DataModule desde la aplicación, con la conexión y configuración que tu digas, ya estará listo para la DLL (o BPL).

Luzma 14-07-2008 23:48:59

:) Muchas gracias, voy a probarlo.


La franja horaria es GMT +2. Ahora son las 21:05:31.

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