我真的很厌恶这个问题。 Google搜索总是似乎建议“删除包中的所有bpls”,“删除所有dcus”。有时这只是不行的。希望我能在这里得到一些其他的想法。
我有一个内部写的包,几个月前就已经安装了。对源进行了一些修改后,我发现是时候重新编译/重新安装软件包了。现在我得到两个错误,第一个如果我选择“安装”是
访问冲突在模块’dcc100.dll’的地址02422108。读地址00000000。
…或者如果我尝试构建/编译包,我得到
这是德尔福这些问题之一,似乎对我们许多人来说是一次又一次的发生。如果我们可以整理一些响应,那么将会很好,“任何一个或这些步骤的组合可能会解决它,但是如果你做所有这些步骤,它将修复它….”
目前,我已经删除了对该包的所有引用到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在包组件中不喜欢类常量(或者类常量数组)
更新:是的,这已经被报告给代码