我真的厌倦了这个问题.谷歌搜索似乎总是建议"删除包的所有bpls","删除所有dcus".有时这只是不行.希望我能在这里得到一些其他的想法.
我有一个内部写的包,几个月前没有问题安装.对源进行了一些更改后,我认为是时候重新编译/重新安装软件包了.现在我得到两个错误,第一个如果我选择"安装"是
模块'dcc100.dll'中地址02422108的访问冲突.读取地址00000000.
...或者,如果我尝试构建/编译包,我得到
[Pascal致命错误] F2084内部错误:LA33
这是我们许多人似乎一次又一次出现的德尔福问题之一.如果我们能够按照"任何一个或这些步骤的组合可能修复它"的方式整理响应,那将会很棒,但是如果你做了所有这些步骤,它将修复它......
目前,我已删除了对此程序包的bpl/dcp文件的所有引用,但仍然得到相同的错误...
使用BDS2006(Delphi)
2008年10月1日更新:我设法解决了这个问题 - 请参阅下面的帖子.由于我不能接受我自己的答案,我不完全确定在这里做什么.显然,对于某些人来说,这些类型的问题经常发生,所以我会暂时保持开放以获得其他建议.然后我想如果有人将所有信息整理成一个超级帖子,我可以接受答案
我按照以下程序设法解决了这个问题
创建一个新包
逐个将组件添加到包中,编译并安装,直到失败.
调查导致故障的单元.
事实证明,所讨论的单元有一个类常数数组,例如
TMyClass = class(TComponent) private const ErrStrs: array[TErrEnum] of string = ('', //erOK 'Invalid user name or password', //erInvUserPass 'Trial Period has Expired'); //erTrialExp protected ... public ... end;
所以看起来Delphi不喜欢包组件中的类常量(或者类常量数组)
更新:是的,这已经报告给codegear