PDA

Ver la Versión Completa : Pasarle un objeto a una DLL


adlfv
13-08-2005, 16:31:26
Hola a todos.

Tengo una aplicación que funciona con un bd en MySQL. Para el manejo de la BD, tengo un TDataModule en el cual se encuentran todas las tablas, datasources y todo eso.

Me he dado cuenta que puedo dividir la aplicación en modulos, pues los mantenimientos de las tablas los he logrado hacer independientes del resto de la aplicación, con lo cual... los quiero meter en una DLL por si tengo que actualizar o lo que sea, sólo modifico la DLL y ya.

Al llamar a la DLL, tengo un procedimiento (exportado) Inicializar(DataModule: Pointer; Global: Pointer). Ambos parámetros son de tipo TDataModule, y necesito pasarle esos objetos a la DLL, o bien, decirle "donde" estan, para poder acceder a los datos.

He probado como datos normales (enteros, reales...) así con el tipo, y leyendolo en la DLL, y no funciona. También probé como punteros, y tampoco funciona.. Me da error: Access violation at address 05328538 in module 'Mantenimientos.dll'. Read of address 00000236.

Alguien me puede por favor orientar sobre cómo hacer esto.

Muchas gracias de antemano.

Un cordial saludo.

PD: Si pueden ponerme código de ejemplo, o indicarme donde conseguirlo sería mejor...

delphi.com.ar
15-08-2005, 23:37:29
Para compartir clases y objetos entre librerías te recomiendo utilizar BPL´s... que tienen arquitectura de DLL pero tienes un interesante juego de funciones para poder importar las clases. Te recomiendo leerte: http://community.borland.com/article/0,1410,27178,00.html

Saludos!

adlfv
19-08-2005, 19:51:32
Gracias por contestar...

Ahora estoy vuelto un 8 con los paquetes :confused:

Voy intentarlo un poco más y sino voy a poner otro post a ver si alguien me puede ayudar...

lafirma
19-08-2005, 20:42:49
Bueno, echale un vistazo a este articulo (www.clubdevelopers.com/delphi/articulos/lenguaje/dindpk/index.php)