Sto programmando un giochino testuale con turbo pascal 7 in modo
protetto, che comprende l'uso di un oggetto implementato in una dll.
Ho usato un procedimento che mi funziona, ma non so se
è un procedimento sempre valido.
Il procedimento è questo.
Ho creato un oggetto in una unit che ha solo campi(variabili)
con indicatore di visibilità public, non avendo la possibilità di
usare il protected.
es. unit prv;
Type
minicalc=object
x,y:integer;
end;
A questo punto ho creato in una dll un oggetto in questo modo
che contiene solo metodi. Es. library prv_dll;
uses prv;
mcalc=object(minicalc)
procedure init;
procedure dai_num(a,b:integer);
end;
procedure mcalc.init;
begin ... end;
procedure mcalc.dai_num;
begin ... end;
procedure init(var s:mcalc); export;
begin s.init end;
procedure dai_num(var s:mcalc;a,b:integer); export;
begin s.dai_num(a,b) end;
exports
init,
dai_num;
A questo punto nel programma scrivo:
uses prv;
var q:^minicalc;
procedure init(var s:minicalc); far; external 'prv_dll';
procedure dai_num(var s:minicalc;a,b:integer);far;external 'prv_dll';
begin
new(q);
init(q^);
dai_num(q^,3,4);
dispose(q);
end.
Il sistema per quello che devo fare funziona,
ma non so se è un metodo sempre valido!
Che ne pensate?
|