16,748
社区成员
发帖
与我相关
我的任务
分享
function TMainForm.My_UniCodeArrayToString(Content: PChar; Size: Integer): string;
var
R: PWord;
P: PByteArray;
W: WideString;
Offset: Integer;
begin
P := PByteArray(Content);
Size := Size div 2;
SetLength(W, Size);
Offset := 0;
R := PWord(W);
while Size > 0 do
begin
R^ := P^[Offset] * 256 + P^[Offset + 1];
Inc(R);
Dec(Size);
Inc(Offset, 2);
end;
Result := W;
end;
function AnsiToUnicode(Str: AnsiString): String;
var
Len: integer;
begin
Len := Length(Str)+ 1;
SetLength(Result, Len);
Len := MultiByteToWideChar(CP_ACP, 0, PAnsiChar(Str),-1,
PWideChar(Result), Len);
SetLength(Result, Len- 1); // end is #0
end;
function AnsiToUnicode(Str: AnsiString): String;
var
Len: integer;
begin
Len := Length(Str)+ 1;
SetLength(Result, Len);
Len := MultiByteToWideChar(CP_ACP, 0, PAnsiChar(Str),-1,
PWideChar(Result), Len);
SetLength(Result, Len- 1); // end is #0
end;
问题出在这段上面