我已经在Delphi XE4 Indy compatibility issue between TBytes and TidBytes 看到 了关于数据类型 tbytes 和 tidbytes 之间的兼容性问题的帖子。从我了解到的第二个答案中,即使它们都是字节数组,它们看起来也不能一起使用。但是,最新的答案说,在 indy 10.5.9 中它取决于 TBytes 的存在,并且只有在 Indy 10.6 中它才完全作为字节数组提交。无论如何,我有一个 .pas 单元,它可以解码来自 IdUDPServerUDPRead 事件的几个数据包,但不能将它们放在一起。我总是收到错误:[dcc32 Error] Unit1.pas(216): E2250 没有可以使用这些参数调用的“Unpack”的重载版本
但 Unpack 声明正确:
class function Unpack(Bytes: TBytes; Count: Integer): TOSCPacket; overload;
class function Unpack(Bytes: TBytes; Offset, Count: Integer; TimeTag: Extended
= 0): TOSCPacket; overload; virtual;
据我所知,我对它的使用也是如此:
OSCPacket.Unpack(AData, Length(Adata));
其中 AData 是字节数组。
我在这里做错了什么,我没有看到?我已经在谷歌上搜索了几个小时,但找不到一种方法来将 AData 中的数据合并、转换、复制、移动或其他任何方式转换为实际可用的变量,以便将其放入 Unpack 函数的参数列表中。
任何帮助将不胜感激。
谢谢,
马克