我在Delphi 7中有这样的代码:
var
mValueBuffer : TValueBuffer;
begin
Double(MValueBuffer) := Date;
end;
当我在Delphi 10 Seattle中编译它时,它失败并出现无效的类型转换错误。我使用的是Data.DB
单元。
答案 0 :(得分:3)
从您的评论中提取信息并编辑问题以使用它们,我们现在可以理解这个问题。请注意评论中给出的建议,以便将来提出问题。
类型TValueBuffer
在Data.DB
中声明为动态字节数组。因此,类型转换无效。您不能希望将动态数组(实际上是指针)转换为双精度浮点值。这些类型的大小不同。因此编译错误。即使类型大小相同,演员也毫无意义。
为什么在Delphi 7中编译。好吧,Delphi 7标准库没有名为TValueBuffer
的类型。因此,我们只能假定您的代码或您使用的库中定义了TValueBuffer
。据推测,您对Data.DB
单位的使用会隐藏打算使用的TValueBuffer
类型。找到那种类型,你就可以得到问题的答案。