2016-12-10 30 views
0

私はDelphi 7からDelphi XE5にアプリケーションを移行していますが、以下は私の関数です。デルファイの互換性のない型エラー

function InternalDecrypt(const S: AnsiString; Key: Word): AnsiString; 
var 
    I: Word; 
    Seed: Word; 
begin 
    Result := S; 
    Seed := Key; 
    for I := 1 to Length(Result) do 
    begin 
    Result[I] := Char(Byte(Result[I]) xor (Seed shr 8)); //Error is here 
    Seed := (Byte(S[I]) + Seed) * Word(C1) + Word(C2) 
    end 
end; 

私のエラーは、次のとおりです。互換性のない型「AnsiCharの」と 'シャアデルファイ、いずれかがちょうど右の方法で私を導くことができます。

+0

あなたは全く研究をしましたか?確かに、あなたは 'Char 'が' AnsiChar'からDelphi 2009の 'WideChar'に変更されたことを理解しなければなりません。慎重にそして、あなたは本当にバイナリデータであるかのように、テキストの扱いをやめなければなりません。それは本当ではありません。 –

答えて

1

はAnsiCharの種類としてC1とC2と

Result[I] := AnsiChar(Byte(Result[I]) xor (Seed shr 8)); 

を試してみてください。

+1

ロケールがあなたを捕まえないことを願っています。そうなる。 –

関連する問題