Du bekommst Probleme, wenn die Funktion als Parameter einen String entgegennimmt, aber in Wirklichkeit nur für die Verarbeitung eines AnsiString ausgelegt ist.
Beispiel - String in einen Stream schreiben
Delphi-Quellcode:
// Arbeitet ganz toll mit Delphi < D2009
procedure WriteStringToStream( const AStr : string; AStream : TStream );
begin
AStream.Write( AStr[1], Length( AStr ) );
end;
Hierfür gibt es jetzt 2 Möglichkeiten das umzuschreiben
- Deklaration anpassen
Delphi-Quellcode:
procedure WriteStringToStream( const AStr : AnsiString; AStream : TStream );
begin
AStream.Write( AStr[1], Length( AStr ) );
end;
- Source anpassen
Delphi-Quellcode:
procedure WriteStringToStream( const AStr : string; AStream : TStream );
begin
AStream.Write( AStr[1], Length( AStr ) * SizeOf( Char ) );
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)