hola a todos:
estoy haciendo una dll, la cual contendra funciones y procedimientos para operar con una base de datos SQLite usando FireDAC en un DataModule...
ya he echo dll que contienen formularios, pero no se si el error esta en que el procedimiento q exporto en la dll no tiene acceso al DataModule, les adjunto el mensaje de error...
bueno aqui usaremos este pequeño codigo para que todos estemos sincrinizados y afrentemos el problemas sin tirar piedras a ver si damos a la lata... esta es la dll y como pueden observar esta la unidad uData que es un DataModule.
Código Delphi
[-]library dataLib;
uses
System.SysUtils, System.StrUtils,
System.Classes,
FMX.Graphics,
uData in 'uData.pas' ;
{$R *.res}
procedure conectarDB; stdcall;
begin
DM.Dconnection.Params.Clear;
DM.Dconnection.Params.Add('Database='+GetCurrentDir+'\cmodelo.db');
DM.Dconnection.Params.Add('DriverID=SQLite');
DM.Dconnection.Connected:=True;
end;
exports
conectarDB;
begin
end.
en el DataModule agregamos los siguentes componentes:
Dconnection: TFDConnection; FDPhysSQLiteDriverLink1:
TFDPhysSQLiteDriverLink;
FDGUIxWaitCursor1: TFDGUIxWaitCursor;
observaran q cuando compilen todo marchara bien, entoces para probar cerramos y hacemos un proyecto nuevo, en mi caso Multi-Device Aplication (FireMonkey HD) y agregamos un botoncito nos queda esto:
Código Delphi
[-]unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms;
type
TForm1 = class(TForm)
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
procedure conectarDB; stdcall; external 'dataLib.dll' name 'conectarDB';
implementation
{$R *.fmx}
procedure TForm1.Button1Click(Sender: TObject);
begin
conectarDB;
end;
end.
ya tenemos el ejecutable, cerramos y cargamos el proyecto DLL y en el menu Run escojemos Parameters... y buscamos el ejecutable. con esto ya podemos correr la dll y me pueden ayudar, jajaja...
gracias de antemano.