2010-06-21 104 views
0

我在Delphi 2007中得到了以下错误。这是什么意思?德尔福2007年内部错误

[DCC错误] uMyUnit.pas(9614):F2084内部错误:AV21B66E31-R0000000F-0

我做了一些最近添加的代码删除,行插入/缺失,改变编译器选项,但毫无效果。

我可以通过关闭'Typed pointer @ operation'选项来解决这个问题。有趣的是,它正在使用此选项打开。但是在我添加了一些甚至没有指针的代码后,它就崩溃了。

+0

你可以发表你的代码的几行,并告诉我们它在哪里炸毁(在uMyUnit.pas,行9614)?这样我们可以帮助你更多。但是,如果它是一个编译器错误,那么你可能需要编码(顺便说一句,有谁知道是否有任何德尔福2007年修补程序可供下载?) – Mawg 2010-06-21 23:47:22

+0

我做了一些改变,现在错误的行是9620.我只是意识到这是超出单位的结束。单位的最后一行(结尾)有一个数字9618.最后一行下面没有空行。 – Max 2010-06-22 00:08:28

回答

3

这是一个精简版的错误,任何Delphi开发人员都很熟悉。如果您在IDE中看到它,它会这样说:

Access Violation at location 21B66E31: Read of address 00000000.

这意味着你的代码,因为目前写的,已经成功地暴露出编译器的错误。不幸的是,由于编译器的源代码不可用,唯一要做的就是继续做更多你已经尝试过的工作,但目前为止还没有成功。

或者尝试更新到D2010,看看它是否更好。他们在Delphi 2010中修正了很多内部编译器错误(当然,其中很多是Delphi 2009中引入的新错误,但其中有些错误不是)。

1

尝试重新启动IDE。它修复了很多内部错误。

如果重新启动后错误仍然存​​在,并且所有内容仍在工作,则可以忽略该错误。由于某些资源编译器问题,我的一个项目出现了内部错误,但我怀疑它会在两年后仍然有效,即使经过多次修改和重建也是如此。

+0

我试过重新启动当然。没有帮助。这不是一个资源编译器。这是delphi编译器,所以没有exe文件。 – Max 2010-06-21 22:52:44

+0

+1用于重新启动IDE。 OP应该已经表明他已经尝试过了,如果他已经尝试过了。如果你没有,我会建议你。 – 2010-06-21 23:32:25

3

您是否尝试过:
- 删除所有的DCU和重建
- 建立与命令行编译
- 洗牌的使用条款
在单元的顺序 - 在墙上碰你的头(没有帮助,但至少你知道它为什么会受伤^ = ^)