AnsiString PWideChar类型转换问题

iqyely iqyely 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
function DecodeProductKey(const HexSrc: array of BYTE): pchar;stdcall;
const
StartOffset: INTEGER = $34;
EndOffset: INTEGER = $34 + 15;
Digits: array[0..23] of CHAR = ('B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'M', 'P', 'Q', 'R', 'T', 'V', 'W', 'X', 'Y', '2', '3', '4', '6', '7', '8', '9');
dLen: INTEGER = 29;
sLen: INTEGER = 15;
var
HexDigitalPID: array of CARDINAL;
Des: array of CHAR;
I, N: INTEGER;
HN, Value: CARDINAL;
begin
SetLength(HexDigitalPID, dLen);
for I := StartOffset to EndOffset do
begin
HexDigitalPID[I - StartOffSet] := HexSrc[I];
end;

SetLength(Des, dLen + 1);

for I := dLen - 1 downto 0 do
begin
if (((I + 1) mod 6) = 0) then
begin
Des[I] := '-';
end
else
begin
HN := 0;
for N := sLen - 1 downto 0 do
begin
Value := (HN SHL 8) or HexDigitalPID[N];
HexDigitalPID[N] := value div 24;
HN := Value mod 24;
end;
Des[I] := Digits[HN];
end;
end;
Des[dLen] := Chr(0);

for I := 0 to Length(Des) do
begin
Result := Result + Des[I];{在delphi2009下该句出错,提示[DCC Error] OperatingSystem.pas(55): E2010 Incompatible types: 'AnsiString' and 'PWideChar',请您帮忙看看,这个类型要怎么转换呢?}
end;
end;
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
iqyely
Delphi 5,944 成员 262,941 内容