如何解决Delphi的[Pascal致命错误] F2084内部错误:LA33?

我真的很厌恶这个问题。 Google搜索总是似乎建议“删除包中的所有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在包组件中不喜欢类常量(或者类常量数组)

更新:是的,这已经被报告给代码

相关文章

 从网上看到《Delphi API HOOK完全说明》这篇文章,基本上都...
  从网上看到《Delphi API HOOK完全说明》这篇文章,基本上...
ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c+&#x...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和ED...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的...