Robert01
07-02-2006, 13:24:34
Tengo problemas al llamar en forma dinámica un procedimiento en una dll hecha en delphi. Adjunto parte del código para la carga estática. He tratado de hacer la carga dinámica siguiendo las instrucciones que dan en el foro pero he obtenido mensajes de error en la línea donde está el procedimiento LUD(A,n,INDX,de);
Gracias si alguien puede darme una pequeña ayuda.
type
float = double;
const
nsize = 1000;
type
VDouble = array of float;
MDouble = array of VDuoble;
VInteger = array of integer;
var
A : MDouble;
Y : MDuoble;
ind : VInteger;
temp0 : VDouble;
A1 : MDouble;
e : VDouble;
d : VDouble;
v : MDouble;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
procedure lud(a : MDouble; n : integer; var ind : VInteger;
var d : float); stdcall;external 'lu_lib.dll';
implementation
{$R *.dfm}
procedure inv;
Var
i, j, k, n,nrot : integer;
fp1 : textfile;
sum,temp,de : float;
BEGIN
.
.
.
for i:=1 to n do begin
for j:=1 to n do begin
Read(fp1,temp);
A[i,j] := temp;
A1[i,j] := temp;
Y[i,j] := 0.0
end;
Y[i,i] := 1.0;
end;
closefile(fp1);
LUD(A,n,INDX,de);
end;
Gracias si alguien puede darme una pequeña ayuda.
type
float = double;
const
nsize = 1000;
type
VDouble = array of float;
MDouble = array of VDuoble;
VInteger = array of integer;
var
A : MDouble;
Y : MDuoble;
ind : VInteger;
temp0 : VDouble;
A1 : MDouble;
e : VDouble;
d : VDouble;
v : MDouble;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
procedure lud(a : MDouble; n : integer; var ind : VInteger;
var d : float); stdcall;external 'lu_lib.dll';
implementation
{$R *.dfm}
procedure inv;
Var
i, j, k, n,nrot : integer;
fp1 : textfile;
sum,temp,de : float;
BEGIN
.
.
.
for i:=1 to n do begin
for j:=1 to n do begin
Read(fp1,temp);
A[i,j] := temp;
A1[i,j] := temp;
Y[i,j] := 0.0
end;
Y[i,i] := 1.0;
end;
closefile(fp1);
LUD(A,n,INDX,de);
end;