![]() |
Bug beim Memory-Management von WideStrings?
Folgender Code führt bei der Widestring-Version zu einer Änderung des const-Parameters in der Funktion beim ersten Aufruf der Copy-Funktion.
Delphi-Quellcode:
procedure DoVarConstBug(var Param1, Param2: String; const Value: String); overload;
begin Param1 := ''; Param2 := ''; if 0 < Pos( '.', Value) then begin Param1 := Copy( Value, 1, Pos( '.', Value)-1); Param2 := Copy( Value, Pos( '.', Value)+1, Length( Value)); end; end; procedure DoVarConstBug(var Param1, Param2: WideString; const Value: WideString); overload; begin Param1 := ''; Param2 := ''; if 0 < Pos( '.', Value) then begin Param1 := Copy( Value, 1, Pos( '.', Value)-1); Param2 := Copy( Value, Pos( '.', Value)+1, Length( Value)); end; end; procedure TForm1.Button1Click(Sender: TObject); var Str, Str2: String; wStr, wStr2: WideString; begin str := 'Teil-1.Teil-2'; DoVarConstBug(Str2, Str, Str); wStr := 'Teil-1.Teil-2'; DoVarConstBug(wStr2, wStr, wStr); ShowMessage(Format('String: %s <-> WideString: %s', [Str, wStr])); end; |
Re: Bug beim Memory-Management von WideStrings?
Der fehler ist altbekannt und existiert schon seit Delphi 5. Soll aber im Delphi 2005 Update 2 behoben sein, dass nur die, die eine Englische Version haben, installieren können.
|
Re: Bug beim Memory-Management von WideStrings?
Hast Du auch Links zu diesem Fehler oder eine Quality-Central-ID?
Mir war dieser Fehler unbekannt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz