gpt4 book ai didi

delphi - 为什么在Delphi中添加Action会导致 fatal error

转载 作者:行者123 更新时间:2023-12-02 03:38:11 25 4
gpt4 key购买 nike

我使用的是Delphi 2009。我的程序编译并运行良好。我使用操作列表并将它们内置到我的程序中 - 尽管我已经有一段时间没有更改它们了。

所以今天我将按照正常方式简单地将一个新操作添加到我的 ActionList 中。在不做任何其他事情的情况下,我现在构建并运行我的程序,并收到以下错误:

[DCC fatal error ] Userface.pas(1): F2092 程序或单元“Userface”递归使用自身。

我没有做任何改变任何uses子句的事情。我找不到我的 Userface 单元调用自身或调用另一个调用 Userface 的单元的任何实例。我按照应有的方式将潜在的递归调用放在“实现”部分中。

如果我退出 Delphi 而不保存、重建并运行它,它运行良好。如果我再次尝试向操作列表添加新操作,则会再次发生 fatal error 。

我不知道发生了什么。如果您能帮助我解决这个问题,我将不胜感激。

<小时/>

编辑:乌韦回答后,我仔细检查以确保它仍在发生。果然,我按照我在给乌韦的评论中描述的那样又做了一次。建好之后,又出现了这样的情况。

...但是,在项目菜单下,我意外地错过了选择“构建”并选择了“编译”。它编译得很好。然后我尝试构建,现在构建工作正常。没有 fatal error !对我来说一切似乎又恢复正常了。

如果我尝试添加另一个操作然后构建,则会再次出现错误。但如果我编译,那么我可以成功构建它 - 所以至少我有一个解决方法。

这一定是某种故障。我不知道发生了什么事。有谁知道这是什么或者为什么会发生?

<小时/>

后续。正如马里安所说,这种情况也可能发生在其他情况下,其中之一就发生在我身上。所以它可能与我的问题所要求的添加操作没有直接关系。

尽管如此,到目前为止,这种情况对我来说还是比较罕见的,而且只变成了一个小烦恼。它可能已经在 Delphi 2010 中得到修复,我的最终解决方案将是当我下次升级到 Delphi 2011 或 12 时,一旦它们添加了 64 位或多平台。

最佳答案

如果您绝对确定编译了正确的源代码(.dpr 路径!)并且使用部分相同,那么如果非常简单或未使用,Delphi 可能可以消除相互引用。

IOW,如果 A 和 B 互相导入,但其中一个不使用另一个的符号,编译器可能会让它通过。一旦开始使用符号(因为通过选择操作可以访问之前无效的代码),它就会变成相互引用冲突。

关于delphi - 为什么在Delphi中添加Action会导致 fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3379695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com