hallo,
als erstes musst du im hauptprogramm natürlich die gleiche arraygröße haben...
Delphi-Quellcode:
var
adresse : array [0..99] of TREC;
...
var
adresse = array [1..99] of TREC;
dann kannst du nicht einfach im haputprogramm const, statt var schreiben, wenn du var in der
dll definiert hast:
Delphi-Quellcode:
...
procedure test(i:integer; var ???? TREC oder adresse );
..
procedure test(i:integer; ??const ff: PTREC ); stdcall;
...
und den aufruf machst du so, wie du die prozedur definiert hast:
Delphi-Quellcode:
...
var
testarr: TREC;
begin
test(1, ^testarr);
...
end;
außerdem verstehe ich nicht, warum du in der
dll-prozedur erst im array 0 was einträgst und dann im array 1 - ist das nur zur demo
evtl. solltest du noch genauer erklären, was du machen willst, denn du kannst z.b. statt dem übergeben des pointers auch einfach eine funktion mit result definieren..
mfg,
heiopei
ps: was macht der "parameter" unsafe?