读书人

Delphi7转delphi2010遇到的字符有关问

发布时间: 2012-04-23 13:17:38 作者: rapoo

Delphi7转delphi2010遇到的字符问题
除了pchar转成pansichar外,我自己写的一些算法全部无效了。。。。
以下是Delphi7的部份代码代码:

Delphi(Pascal) code
function B64Encode1(const S: string): string;var    i: integer;    InBuf: array[0..2] of byte;    OutBuf: array[0..3] of Char;begin    SetLength(Result, ((Length(S) + 2) div 3) * 4);    for i := 1 to ((Length(S) + 2) div 3) do    begin        if Length(S) < (i * 3) then            Move(S[(i - 1) * 3 + 1], InBuf, Length(S) - (i - 1) * 3)        else            Move(S[(i - 1) * 3 + 1], InBuf, 3);


传参:amxl1314
再第一个循环执行 Move(S[(i - 1) * 3 + 1], InBuf, 3); 时,
D7中inbuf变成:97,109,120
D2010中inbuf变成:97,0,109

更不用说接下来啦,哪位大虾知道上面出现问题的原因吗?以及从D7转换D2010时该注意的东西

[解决办法]
string改成AnsiString
[解决办法]
2010的pchar=pwidechar

你可以使用 ansichar,ansistring
[解决办法]
就是为了跨平台。原来是delphi string 单字节与双字节区不明显。现在是d2005要求就不一样了

读书人网 >.NET

热点推荐