Dynamische Arrays (TBytes) sind Delphi-Typen. Man kann sich zwar sicher die Arbeit machen und irgendwie darauf aus anderen Programmiersprachen zugreifen aber wenn die interne Speicherstruktur von dynamischen Arrays geändert wird hast du ein Problem.
Ist "var Bytes : TBytes" wirklich das was du willst? Daten sollen in die
Dll rein gegeben werden, dort änderbar sein und sollen dann zurück kommen? Oder willst du vielleicht nur Daten rein geben. Oder sollen die Daten innerhalb von TBytes nur modifizierbar sein aber die Größe des Arrays bleibt unverändert?
Am besten schaust du dir dazu einige Beispiel der Win-
Api an. Dort ist es üblich das man der Funktionen einen Buffer übergibt und die Größe mitgibt (Anzahl der Elemente bzw. möglichen Elemente). Wenn die Funktion dann feststellt das die Anzahl der möglichen Elemente nicht ausreicht wird dieser Wert korrigiert.
Delphi-Quellcode:
function DoSomething(Buffer: PByte; var Count: Word): Boolean;
begin
if Count < NeededSize then
result := False
else
begin
move(SomeStuff^, Buffer^, Count);
result := True;
end;
Count:=NeededSize;
end;