Zitat von
Hedge:
z.B. MaxPath durch eine Zahl ersetzen, aber das hat es auch nicht gebracht.
MAX_PATH ist eine Konstante (260) und nur weil man da eine Wert (die Größe) ändert, ändert sich nichts am Typ.
Nja, ich meinte ob du den Typen einfach verändern kannst
oder ob er genau so, als Array, definiert sein muß.
Ich hatte mir ein einem Projekt mal so beholfen
Delphi-Quellcode:
TWideString32 = packed Record
Data: Array[1..32] of WideChar;
Class Operator Implicit(Const Value: AnsiString): TWideString32;
Class Operator Implicit(Const Value: WideString): TWideString32;
Class Operator Implicit(Const Value: TWideString32): WideString;
Class Operator Equal (Const A: TWideString32; Const B: WideString): Boolean;
Class Operator NotEqual(Const A: TWideString32; Const B: WideString): Boolean;
End;
dieses entspricht vom Speicher her diesem
TWideString32 = Array[1..32] of WideChar;
der Typ/Record kann jetzt (so wie er hier ist)
Delphi-Quellcode:
Rec := S {AnsiString};
Rec := S {WideString/UnicodeString};
S {WideString} := Rec; // und indirekt auch AnsiString
if Rec = S {WideString} then
if Rec <> S {WideString} then
und intern wird dann via MoveMemory kopiert.
[add]
ahhh, ich jetzt hab ich's doch gefunden ... wußte doch, daß es irgendwo mal was gab
[add2]
und och noch den Link vergessen
http://www.delphipraxis.net/internal...rator+implicit