Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema con dll (https://www.clubdelphi.com/foros/showthread.php?t=30030)

Robert01 07-02-2006 13:24:34

Problema con dll
 
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.

Código Delphi [-]
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;

Neftali [Germán.Estévez] 07-02-2006 13:43:56

Antes que nada Bienvenido a los foros.
A parte de eso:
(1) Por favor revisa la guía de estilo.
(2) Haz una búsqueda en los foros antes de preguntar, seguramente acabarás antes.
http://www.clubdelphi.com/foros/show...&highlight=DLL
http://www.clubdelphi.com/foros/show...&highlight=DLL
(3) Utiliza TAG's en los mensajes (TAG delphi en la barra de botones del editor).
(4) Una vez escrito el mensaje, puedes revisar los mensajes relacionados que aparecen al pie de ésta página.

Un saludo.

Robert01 07-02-2006 23:04:34

ya encontré el error
 
:) El problema es que al escribir el código para enlace dinámico no había puesto la cláusula stdcall al definir el tipo:

Código Delphi [-]
Tludcmp = procedure(a : MDoble; n : integer; var indx : VEntero; var d : float);stdcall;

Disculpen si puse la consulta sin haber hecho una revisión teniendo en cuenta estos pequños detalles.

Gracias por todo


La franja horaria es GMT +2. Ahora son las 07:08:12.

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