Hola, tengo un fallo ... el caso es que no lo veo ... a ver si desde su perspectiva me lo encuentran ....
Una dll
Código Delphi
[-]library FormDLL;
uses
sharemem,SysUtils,
Classes,dialogs,
UfrmPrincipal in 'UfrmPrincipal.pas' ;
{$R *.res}
function MostrarFormulario : boolean; stdcall;
begin
Result := true;
frmPrincipal := TfrmPrincipal.Create(nil);
try
frmPrincipal.ShowModal;
finally
frmPrincipal.Free;
end;
end;
function suma(x,y:integer):integer;stdcall;
begin
suma := x+y;
end;
function muestrasaludo:boolean;stdcall;
begin
Result := true;
showmessage('Hola');
end;
exports
MostrarFormulario,suma,muestrasaludo; end.
y un exe que la llama
Código Delphi
[-]unit UfrmPrueba;
interface
uses
sharemem,Windows, Forms, Classes, Controls, StdCtrls,dialogs,sysutils;
type
TfrmPrueba = class(TForm)
btnFormulario: TButton;
Button1: TButton;
Button2: TButton;
procedure btnFormularioClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
end;
var
frmPrueba: TfrmPrueba;
function MostrarFormulario : boolean; external 'FormDLL.dll' name 'MostrarFormulario';
function suma(x,y:integer): integer;external 'FormDLL.dll' name 'suma';
function muestrasaludo:boolean;external 'FormDLL.dll' name 'muestrasaludo';
implementation
{$R *.dfm}
procedure TfrmPrueba.btnFormularioClick(Sender: TObject);
begin
MostrarFormulario; end;
procedure TfrmPrueba.Button1Click(Sender: TObject);
var
resultado: integer;
begin
resultado := suma(3,4);
showmessage (inttostr(resultado));
end;
procedure TfrmPrueba.Button2Click(Sender: TObject);
begin
muestrasaludo;
end;
end.
la unica funcion que no me funciona es la de la suma ... la mas facil
Gracias por adelantado