Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Delphi Var Parameter in C++

  Alt 8. Jul 2011, 17:26
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;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat