gpt4 book ai didi

delphi - 单元 递归地使用自己(但它没有)

转载 作者:行者123 更新时间:2023-12-03 18:03:21 26 4
gpt4 key购买 nike

我有一个数据模块,在我们的一个业务应用程序中使用。它在项目中几乎每个单元的实现中都有使用条款。

我可以在数据模块的实现部分修改业务逻辑和其他代码,并且可以毫无问题地进行编译。但是,对数据模块的接口(interface)部分进行任何更改然后进行编译都会导致编译器错误“Unit MyDataModule recursively uses itself”。构建而不是编译会使错误消失。

这是我以前从未见过的新作品。当然,我已经检查过以确保没有办法递归使用数据模块,如果确实如此,构建也不会改变任何东西。

有没有人知道如何追踪或解决这个问题?每次向数据模块引入新查询或方法时,都必须编译、关闭错误对话框,然后构建,这真的很烦人。

编辑:解决下面和@Marjan 的回答中的一些评论:

我没有使用变体或调试 dcus。我在一个看起来像 promising 的 Google 搜索结果中尝试了一个解决方案关于损坏的 .identcache 或 .local 文件,但这并没有成功。

尝试了@Jørn 的建议;清理所有临时文件并编译 .dcus,进行编译,一切正常。对接口(interface)进行了更改(在数据模块类声明的私有(private)部分中声明了一个 bool 变量),然后按 Ctrl+F9 进行编译。错误。做了一个Build,一切都很好。编译然后工作正常。删除 bool 值,尝试编译:错误。

我有大约 20 个大小相似的项目(~750K-1M LOC),没有一个表现出这种行为。我已经四重检查数据模块是否不在项目中任何单元的接口(interface)部分。数据模块本身并不是很大(从“unit”到“end.”总共有 8,345 行,包括注释和空行)。 .dfm,作为文本,总共有 8,916 行。

编辑 2:我想我不得不接受(无论如何现在)这是一个编译器故障。我将尝试重新安排一些事情,将一些功能分解到一个单独的数据模块中,看看它是否有大小限制(可能是 DFM 中的项目)或其他问题。感谢所有的努力。

最佳答案

您遇到了编译器故障。请参阅 LKessler 的问题:Why does adding Action cause Fatal Error in Delphi对于发生这种情况的(一种)其他情况。

还有一个:http://objectmix.com/delphi/633618-option-use-debug-dcus-causes-compiler-error.html这与使用调试 dcu 有关。

如果你用谷歌搜索它 ( http://www.google.com/search?q=delphi+%22recursively+uses+itself%22+compiler+error ),它似乎从 D4 开始就存在了......

我猜这是一个编译器故障并没有什么安慰,但至少你并不孤单......

更新

我已经找到了另外两个链接,其中包含可能的相关信息。但是他们都在进行专家交流。我通常包含指向专家交流的链接,因为我不同意他们的作案手法(要钱才能接触专家)。在这种特殊情况下,我考虑过“作弊”(订阅、获得答案、张贴在这里并取消我的订阅)来帮助 Ken、David 和其他受此问题困扰的人。然而,这感觉不对,而且我不会在订阅时透露我的信用卡详细信息,即使我可以在他们开始向我收费之前取消。

由于其他人可能对专家交流持有不同的看法和/或可能热衷于做我不准备做的事情,链接是:http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_10206864.htmlhttp://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_23848477.html这两个问题都被标记为“已解决”和“提问者已验证”。不管这意味着什么。

关于delphi - 单元 <SomeUnit> 递归地使用自己(但它没有),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5585031/

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