我试图在Android上使用一些Windows代码,但是我没有成功。
当我试图编译以下代码时,会出现一个错误:
DCC错误没有重载版本的“HexToBin”可以用这些参数调用
var
BinaryStream: TMemoryStream;
HexStr: String;
WSocket: TWSocket;
begin
HexStr := memo1.Text;
BinaryStream := TMemoryStream.Create;
try
BinaryStream.Size := Length(HexStr) div 2;
if BinaryStream.Size > 0 then
begin
HexToBin(PChar(HexStr), BinaryStream.Memory, BinaryStream.Size);
HexStr:='';
HexStr:=MemoryStreamToString(BinaryStream);
memo1.Text:=HexStr;
IdUDPClient1.Send(HexStr);发布于 2017-03-22 20:51:35
对于Android,您必须使用以下重载之一:
function HexToBin(const Text: PChar; TextOffset: Integer;
var Buffer: TBytes; BufOffset: Integer; Count: Integer): Integer; overload;
function HexToBin(const Text: TBytes; TextOffset: Integer;
var Buffer: TBytes; BufOffset: Integer; Count: Integer): Integer; overload;最好通过使用TBytesStream而不是TMemoryStream来实现这一点。
然后,一个有效的调用可能如下所示:
var
BinaryStream: TBytesStream;
bytes: TBytes;
HexStr: String;
begin
HexStr := memo1.Text;
SetLength(bytes, Length(HexStr) div 2);
HexToBin(PWideChar(HexStr), 0, bytes, 0, Length(bytes));
BinaryStream := TBytesStream.Create(bytes);
...https://stackoverflow.com/questions/42962063
复制相似问题