我有以下代码:
user_s.username := EnDecrypt(Edit_username.Text);
Run Code Online (Sandbox Code Playgroud)
功能如下:
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;
Run Code Online (Sandbox Code Playgroud)
变量的类型是:
TUser = record
access: char;
username: string[25];
password: string[25];
end;
Run Code Online (Sandbox Code Playgroud)
在Delphi 2007中它可以工作,在Delphi XE2中它失败了.奇怪的是,如果它是123456789,它会很好地加密/解密密码.这个问题必须与unicode和shortstring的使用有关.我希望有一些方法可以让它在Delphi XE2中运行..
更换String同型号AnsiString,并Char与AnsiChar和代码将工作完全在德尔福2007年(String[25]不应该被改变,虽然.)当然,你不会得到Unicode支持.