Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

Re: Übergeben von langen Strings und Records an Win32-DLL?

  Alt 6. Dez 2006, 14:12
Dynamische Stukturen, wie Strings und Arrays (ausghenommen WideStrings) werden vom MemoryManager verwaltet und da standardmäßig jede Delphi-Anwendung (EXE/DLL) ihren eigenen MM mitbringt, der nur für sie den Speicher verwaltet, kann man da nicht so einfach was weiterreichen und dann ist die RTTI oftmals auch noch Anwendungsabhängig -.-''

Also du könntest auf ja auf feste Strukturen umsteigen, diese würden dann nach C prtierbar sein.

Code:
TMyTestStruct = record
    BoolVal: Boolean;
    IntegerVal: Integer;
    StringData: array[color=#ff003f][0..123][/color] of ShortString;
  end;
Notfalls könnte man es ja auch noch so deffinieren, daß es keine systemspezifischen Typen und Ausrichtungen gibt.
Dieses wäre dann z.B. ein Record, der in jedem Delphi immwer gleich aufgebaut ist und keine nur Delphi-typischen Strukturen aufweißt:
Code:
TMyTestStruct = [color=#ff003f]packed[/color] record
    BoolVal: [color=#ff003f]LongBool[/color]{BOOL};
    IntegerVal: [color=#ff003f]LongInt[/color];
    StringData: array[color=#ff003f][0..123][/color] of [color=#ff0000]Array[0..123] of Char[/color]{AnsiChar};
  end;
$2B or not $2B
  Mit Zitat antworten Zitat