proprio te cercavo,
ricordi quando mi hai spiegato come allocare e riempire un puntatore?
la cosa funzionava, sul mio pc, ora che ho spostato l'app sul server ho un invalid pointer operation, non so nemmeno come trovare il punto esatto in cui genera l'eccezione per essere sicuro che sia proprio quel puntatore, insomma non ho il debugger dell'ide sul server... non ho trovato di meglio che compilare il progetto commentando le parti a rischio.
immagina una situazione del genere:
// è definita così
procedure FillBuffer(var Buffer: PByte);
var SafeBuffer: PByte;
...
begin
for I to pred(fieldCount) do begin
// riempi il buffer con i dati
...
inc(SafeBuffer, 1);
end;
inc(SafeBuffer, -RecordSize);
move(SafeBuffer^, Buffer^, RecordSize);
end;
// la chiamo così
BufferH := allocMem(RecordSize);
try
BufferH^ := 0; // nil
FillBuffer(BufferH); //<-- invalid pointer
finally
freeMem(BufferH, RecordSize);
end;