您好我使用Francois Piette的RasDial和Delphi 6,但它在Delphi 2010中停止工作 我怎样才能像以前一样继续使用这些功能?
class function Encryption.DecriptPasswd(strPasswd: string): string;
type
PWORD = ^WORD;
var
Buffer : String;
PW : String[255];
P : PWORD;
I : Integer;
V : Integer;
begin
PW := ' ';
P := PWORD(@PW[0]);
I := 1;
while I <= Length(strPasswd) do
begin
Buffer := Copy(strPasswd, I, 5);
I := I + 5;
V := StrToInt(Buffer) - 34567;
P^ := V;
Inc(P);
end;
Result := PW;
end;
class function Encryption.EncriptPasswd(strPasswd: string): string;
type
PWORD = ^WORD;
var
Len : Integer;
I : Integer;
V : DWORD;
P : PChar;
Buffer : String[255];
begin
Buffer := strPasswd;
Len := Length(Buffer) + 1;
if (Len mod 2) <> 0 then
Inc(Len);
if Len < 10 then
Len := 10;
I := Length(Buffer);
if I = 0 then
Buffer := IntToStr(GetTickCount)
else
while Length(Buffer) < 10 do
Buffer := Buffer + Buffer;
SetLength(Buffer, I);
Result := '';
P := PChar(@Buffer[0]);
for I := 1 to Len div 2 do
begin
V := 34567 + PWORD(P)^;
P := P + 2;
Result := Result + Format('%5.5d', [V]);
end;
end;
答案 0 :(得分:3)
您可以将所有string
声明(已经存在的string[255]
声明除外)更改为AnsiString
,将所有Char
更改为AnsiChar
,以及所有PChar
到PAnsiChar
。
然后转到here,这是关于将Unicode前版本的Delphi移植到Unicode的三篇文章中的第一篇。当它是CodeGear产品时,它们是Delphi的前产品经理Nick Hodges写得非常好。它们涵盖了对其他现有代码进行更改所需的所有详细信息。
答案 1 :(得分:1)
String [255]是短字符串(一个字节) 但是当你添加pchar时,它会增加两个字节的两个字节
尝试用pansichar替换pchar