Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Delphi 5升级到XE5:UDPClient.SendBuffer_Delphi_Indy_Udpclient - Fatal编程技术网

从Delphi 5升级到XE5:UDPClient.SendBuffer

从Delphi 5升级到XE5:UDPClient.SendBuffer,delphi,indy,udpclient,Delphi,Indy,Udpclient,我正在将旧版本的Delphi升级到XE5,旧版本使用Indy组件UDPClient,XE5表示不能使用这些参数调用SendBuffer。有人能帮帮我吗。以下是示例代码段: var i: integer; begin i := bpt; if i <> 0 begin //send Reset byte myBuff[i] := chr(_reset); // reboot the LIA inc(i); IdUDPClient1.S

我正在将旧版本的Delphi升级到XE5,旧版本使用Indy组件UDPClient,XE5表示不能使用这些参数调用SendBuffer。有人能帮帮我吗。以下是示例代码段:

var
  i: integer;
begin
  i := bpt;
  if i <> 0
  begin 
   //send Reset byte
   myBuff[i] := chr(_reset);      // reboot the LIA
   inc(i);
   IdUDPClient1.SendBuffer(myBuff,i);
  end;
end;
var
i:整数;
开始
i:=bpt;
如果我0
开始
//发送重置字节
myBuff[i]:=chr(_重置);//重新启动LIA
公司(一);
IdUDPClient1.SendBuffer(myBuff,i);
结束;
结束;
其中myBuff:char的数组[0..255]

提前感谢您的帮助


Mike

您需要将数据转换为
TIdBytes
,这是一个动态字节数组。您还必须考虑到
Char
现在的大小为2字节,因此如果您需要与现有应用程序保持兼容,请使用
AnsiChar
Byte
而不是
Char

var
  myBuff: array[0..255] of Byte;
...
var
  i: integer;
begin
  i := bpt;
  if i <> 0 then
  begin 
   //send Reset byte
   myBuff[i] := _reset;      // reboot the LIA
   inc(i);
   IdUDPClient1.SendBuffer(RawToBytes(myBuff[0],I));
  end;
end;
var
myBuff:Byte的数组[0..255];
...
变量
i:整数;
开始
i:=bpt;
如果我是0那么
开始
//发送重置字节
myBuff[i]:=\u重置;//重新启动LIA
公司(一);
发送缓冲区(RawToBytes(myBuff[0],I));
结束;
结束;
或:

var
myBuff:TIdBytes;
...
变量
i:整数;
开始
设置长度(myBuff,256);
...
i:=bpt;
如果我是0那么
开始
//发送重置字节
myBuff[i]:=\u重置;//重新启动LIA
公司(一);
IdUDPClient1.SendBuffer(myBuff);
结束;
结束;

您需要将数据转换为
TIdBytes
,这是一个动态字节数组。您还必须考虑到
Char
现在的大小为2字节,因此如果您需要与现有应用程序保持兼容,请使用
AnsiChar
Byte
而不是
Char

var
  myBuff: array[0..255] of Byte;
...
var
  i: integer;
begin
  i := bpt;
  if i <> 0 then
  begin 
   //send Reset byte
   myBuff[i] := _reset;      // reboot the LIA
   inc(i);
   IdUDPClient1.SendBuffer(RawToBytes(myBuff[0],I));
  end;
end;
var
myBuff:Byte的数组[0..255];
...
变量
i:整数;
开始
i:=bpt;
如果我是0那么
开始
//发送重置字节
myBuff[i]:=\u重置;//重新启动LIA
公司(一);
发送缓冲区(RawToBytes(myBuff[0],I));
结束;
结束;
或:

var
myBuff:TIdBytes;
...
变量
i:整数;
开始
设置长度(myBuff,256);
...
i:=bpt;
如果我是0那么
开始
//发送重置字节
myBuff[i]:=\u重置;//重新启动LIA
公司(一);
IdUDPClient1.SendBuffer(myBuff);
结束;
结束;

您需要将数据转换为
TIdBytes
,这是一个动态字节数组。您还必须考虑到
Char
现在的大小为2字节,因此如果您需要与现有应用程序保持兼容,请使用
AnsiChar
Byte
而不是
Char

var
  myBuff: array[0..255] of Byte;
...
var
  i: integer;
begin
  i := bpt;
  if i <> 0 then
  begin 
   //send Reset byte
   myBuff[i] := _reset;      // reboot the LIA
   inc(i);
   IdUDPClient1.SendBuffer(RawToBytes(myBuff[0],I));
  end;
end;
var
myBuff:Byte的数组[0..255];
...
变量
i:整数;
开始
i:=bpt;
如果我是0那么
开始
//发送重置字节
myBuff[i]:=\u重置;//重新启动LIA
公司(一);
发送缓冲区(RawToBytes(myBuff[0],I));
结束;
结束;
或:

var
myBuff:TIdBytes;
...
变量
i:整数;
开始
设置长度(myBuff,256);
...
i:=bpt;
如果我是0那么
开始
//发送重置字节
myBuff[i]:=\u重置;//重新启动LIA
公司(一);
IdUDPClient1.SendBuffer(myBuff);
结束;
结束;

您需要将数据转换为
TIdBytes
,这是一个动态字节数组。您还必须考虑到
Char
现在的大小为2字节,因此如果您需要与现有应用程序保持兼容,请使用
AnsiChar
Byte
而不是
Char

var
  myBuff: array[0..255] of Byte;
...
var
  i: integer;
begin
  i := bpt;
  if i <> 0 then
  begin 
   //send Reset byte
   myBuff[i] := _reset;      // reboot the LIA
   inc(i);
   IdUDPClient1.SendBuffer(RawToBytes(myBuff[0],I));
  end;
end;
var
myBuff:Byte的数组[0..255];
...
变量
i:整数;
开始
i:=bpt;
如果我是0那么
开始
//发送重置字节
myBuff[i]:=\u重置;//重新启动LIA
公司(一);
发送缓冲区(RawToBytes(myBuff[0],I));
结束;
结束;
或:

var
myBuff:TIdBytes;
...
变量
i:整数;
开始
设置长度(myBuff,256);
...
i:=bpt;
如果我是0那么
开始
//发送重置字节
myBuff[i]:=\u重置;//重新启动LIA
公司(一);
IdUDPClient1.SendBuffer(myBuff);
结束;
结束;

您是否理解
Char
现在是一种完全不同的类型?将其称为
IdUDPClient1.sendpuffer(ToBytes(您想要发送的数据))
@TLama我认为问题在于发送的数据多于如何发送it@TLama:
ToBytes()
没有字符数组的重载。传递
char[]
数组将调用
String
重载,因此必须确保数组以null结尾。否则,请改用
RawToBytes()
。您知道
Char
现在是一种完全不同的类型吗?请像
IdUDPClient1.SendBuffer(ToBytes(您想发送的数据))
@TLama我认为问题在于发送的数据多于如何发送it@TLama:
ToBytes()
没有字符数组的重载。传递
char[]
数组将调用
String
重载,因此必须确保数组以null结尾。否则,请改用
RawToBytes()
。您知道
Char
现在是一种完全不同的类型吗?请像
IdUDPClient1.SendBuffer(ToBytes(您想发送的数据))
@TLama我认为问题在于发送的数据多于如何发送it@TLama:
ToBytes()
没有字符数组的重载。传递
char[]
数组将调用
String
重载,因此必须确保数组以null结尾。否则,请改用
RawToBytes()
。您知道
Char
现在是一种完全不同的类型吗?请像
IdUDPClient1.SendBuffer(ToBytes(您想发送的数据))
@TLama我认为问题在于发送的数据多于如何发送it@TLama:
ToBytes()
没有字符数组的重载。传递
char[]
数组将调用
String
重载,因此必须确保数组以null结尾。否则,使用
RawToByte