我有以下代码:
user_s.username := EnDecrypt(Edit_username.Text);
该功能如下:
function EnDeCrypt(const Value : String) : String;
var
CharIndex : integer;
begin
Result := Value;
for CharIndex := 1 to Length(Value) do
Result[CharIndex] := chr(not(ord(Value[CharIndex])));
end;
变量的类型是:
TUser = record
access: char;
username: string[25];
password: string[25];
end;
在Delphi 2007中它可以工作,在Delphi XE2中它失败了。奇怪的是,如果它是123456789,它会很好地加密/解密密码。这个问题必须与unicode和shortstring的使用有关。我希望有一些方法可以让它在Delphi XE2中运行..
答案 0 :(得分:6)
将String
类型替换为AnsiString
,将Char
替换为AnsiChar
,代码将与Delphi 2007完全相同。(String[25]
不应该但是改变了。)当然,你不会得到Unicode支持。