2016-12-10 7 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

로케일이 당신을 붙 잡지 않기를 바랍니다. 그것은 할 것이다. –