今天我尝试在XE4中编译我的XE3项目。首先遇到的问题是Indy的FTCPClient.Socket.ReadBytes()方法。
以前它接受TBytes类型,现在坚持使用TidBytes。
定义: TIdBytes = Byte 数组; TBytes,我不确定,我猜它是类似于Byte数组的泛型TArray。
问题1: 为什么编译器会抱怨“[dcc32 错误] HistoricalStockData.pas(298): E2033 实际和形式变量参数的类型必须相同”。看起来它们已经是相同的了。
问题2: 我是否应该在每个新版本的Delphi中修改我的源代码?
谢谢。
以前它接受TBytes类型,现在坚持使用TidBytes。
定义: TIdBytes = Byte 数组; TBytes,我不确定,我猜它是类似于Byte数组的泛型TArray。
问题1: 为什么编译器会抱怨“[dcc32 错误] HistoricalStockData.pas(298): E2033 实际和形式变量参数的类型必须相同”。看起来它们已经是相同的了。
问题2: 我是否应该在每个新版本的Delphi中修改我的源代码?
谢谢。
TArray<T>
并享受泛型类型的特殊类型兼容规则。因此,在理想的世界中,不会有TBytes
、TIdBytes
,库可以愉快地共存并平稳交互。 - David Heffernan