【问题标题】:Incompatible Types error in Delphi [duplicate]Delphi中的不兼容类型错误[重复]
【发布时间】:2016-12-10 13:02:56
【问题描述】:

我正在将应用程序从 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' 和 'char' delphi 类型不兼容,谁能指导我正确的方式。

【问题讨论】:

  • 你做过任何研究吗?当然,您必须意识到 Char 从 Delphi 2009 中的 AnsiChar 更改为 WideChar。您需要退后一步阅读该更改。小心。而且您真的必须停止将文本视为二进制数据。真的不是。

标签: delphi migration delphi-7 delphi-xe5


【解决方案1】:

试试

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

以 c1 和 c2 作为 ansichar 类型。

【讨论】:

  • 希望语言环境不会让你失望。会的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-20
  • 2011-10-13
  • 1970-01-01
相关资源
最近更新 更多