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要求就不一样了