Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Crear una Dll con mudulos y formularios (https://www.clubdelphi.com/foros/showthread.php?t=32588)

mcarazas 09-06-2006 21:56:52

Crear una Dll con mudulos y formularios
 
Hola Foro:

Necesito crear una dll para mi aplicación , he logrado hacer funcionar la Dll con formularios incluidos lo que quiero ahora es cololar un Data Module en mi aplicación de Dll les muestro un poco del codigo:

Código Delphi [-]
library TEFdll; 
uses
  SysUtils,
  Classes,
  forms,
  frmTEF;
{$R *.res}
procedure Crear_form;
begin
  Application.CreateForm(TfrmTEF1, frmTEF1);
  frmTEF1.ShowModal;
end;

procedure free_form;
begin
  frmTEF1.Free;
end;

exports  Crear_form, free_form;
end.

Cuando quiero llamar una conección ADO que tengo definida
en mi Dll me sale un la siguiente error:

Access violation at address 010041a7 in module 'mi dll'. Read of
address 00000058.

Creo que es por la conneción ADO.

Por favor pido su ayuda para corregir este error o algun link
para poder convertir un Data Module a Dll

Gracias
Marcelo:rolleyes:

delphi.com.ar 09-06-2006 22:22:05

Mmmmm.. No gustó!..
Te recomiendo este hilo: http://www.clubdelphi.com/foros/showthread.php?t=897

Saludos!

mcarazas 10-06-2006 00:59:59

Problemas
 
Ese ejemplo es muy simple, necesito un ejemplo mas avanzado Dll con mudulos, lei en otro foro que se puede convertir un modulo a una Dll pero no dice como
Espero puedas ayudarme....

droguerman 10-06-2006 04:02:21

podiras hacer una funcion en tu dll que te retorne el datamodule pero casteado como longint, recordando que todos los tipos derivador de Tobject (incluidos forms y datamodules) son punteros:

Código Delphi [-]
library Data; 
uses
  SysUtils,
  Classes,
  forms;
{$R *.res}
function obtenerDataModule: longint;
var
 oDataModule : TDataModule;
begin
  oDataModule := TDataModule.create(Application.mainForm);
result := longint(oDataModule);
end;

exports obtenerDataModule;

end.


y en tu aplicación que recoge los valores lo vuelves a castear:

Código Delphi [-]
miModulo = TDataModule( obtenerDataModule );


La franja horaria es GMT +2. Ahora son las 04:06:02.

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