Buenas, tengo un nuevo problema con los BPL, os cuento:
Tengo un registro tal que asi:
Código Delphi
[-]
PRec = ^TRec
TRec = record
datoST : string;
datoIN : integer;
end;
Vale ahora tengo un exe principal que crea una variable de ese tipo, la llena y la envia como parametro a la bpl
Código Delphi
[-]var r : TRec;
begin
r.datoST := 'Prueba';
r.datoIN := 1;
fh := LoadPackage( [el fichero bpl]);
fnc := GetProcAddress( fh, [mi funcion]);
fnc( @r);
showmessage( r.datoST);
showmessage( InttoStr( r.datoIN));
UnloadPackage( fh);
showmessage( r.datoST);
showmessage( InttoStr( r.datoIN));
end;
Este es el codigo del bpl
Código Delphi
[-]
procedure mi funcion( rec : PRec);
begin
rec^.datoST := 'Correcto';
rec^.datoIN := rec^datoIN+1;
end;
exports
mi funcion;
Supongo que al liberar el bpl se libera la memoria asociada, el parametro lo toma como una variable local, y al ser un puntero que hace referencia a la misma memoria del exe, lo que hace es liberarlo todo.
Creo que el porque pasa lo entiendo, lo que no se es como solucionarlo, ¿alguna idea?