记录文件错误

发布于 2024-08-25 00:20:23 字数 225 浏览 8 评论 0原文

我正在使用 Delphi 2007,我正在尝试制作记录类型文件。在 Delphi 7 中对我来说没有任何问题。

Type
Kompiuteris = record
...
end;
Failas = file of Kompiuteris;

但在 Delphi 2007 中我遇到了问题。错误表明:类型“Kompiuteris”需要最终确定。那么,到底出了什么问题呢?

I am using Delphi 2007 and I am trying to make record type file. In Delphi 7 there were no problems for me.

Type
Kompiuteris = record
...
end;
Failas = file of Kompiuteris;

But in Delphi 2007 I get problem. Error says that: Type "Kompiuteris" needs finalization. So, what is wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

总以为 2024-09-01 00:20:23

来自文档

编译器在内部对某些类型进行特殊处理,因为它们必须正确地最终确定以释放它们当前可能拥有的任何资源。由于编译器无法在运行时确定记录的变体部分中实际存储的类型,因此无法保证这些特殊数据类型正确最终确定。

字符串是需要最终确定的数据类型之一,因此它们不能存储在文件类型中。

From the documentation:

Certain types are treated specially by the compiler on an internal basis in that they must be correctly finalized to release any resources that they might currently own. Because the compiler cannot determine what type is actually stored in a record's variant section at runtime, it is not possible to guarantee that these special data types are correctly finalized.

String is one of those data types which need finalization, and as such they cannot be stored in a File type.

dawn曙光 2024-09-01 00:20:23

您需要设置记录字符串字段大小,

例如:

如果记录中有名为 name 的字段

Type
Kompiuteris = record
   name :String[255] ; // Works fine
end;

You need to set record string fields sizing

as example :

if you have field in record called name

Type
Kompiuteris = record
   name :String[255] ; // Works fine
end;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文