经过多年的无故障使用后,Delphi 7现在正在地址上发出访问冲突 模块'vclx70.bpl'中的40233A3E。读取地址0000021C。
启动IDE时,将显示默认的空项目和单位/表单,并编译并运行正常。
我正在开发在Windows 7(x64)上运行的Windows应用程序。
我在很多个月内没有安装任何新的软件包或工具。
我停了下来,死在水中,无法工作。
除了完整的翻录和重新安装以外的任何建议(需要花费很多时间......)
编辑:我卸载并重新安装了Delphi 7.现在我在vcl70.bpl中遇到了访问冲突。我原本以为卸载D7会完全删除它的所有库等...卸载D7后是否应该手动删除文件夹?答案 0 :(得分:4)
问题已解决(主要机器重建已避免!)
ModelMaker Tools的Gerrit Beuze在别处建议:
Remove all .dsk (project desktop) files for the project you try to load,
Temp remove all *.dst (desktop files) from C:\Program Files\Borland\Delphi7\Bin
执行这些步骤后,问题似乎已得到修复。
答案 1 :(得分:2)
在低位读取内存地址通常是第三方组件中的问题。但是,你说你几个月没有安装任何新东西。
另一件奇怪的事情是你在vclx70中得到了错误,这是CLX
库之一。您是否正在使用CLX
(剩余的跨平台 - Kylix)表单或对话框进行任何操作?
如果没有,您可以在源代码中搜索QDialogs
,QForms
或%PROGRAMFILES%\Borland\Delphi7\Source\Clx
中的任何其他单元,并查看是否添加了错误的内容我打算将CLX
拉入你的项目。如果是这样,请将其更改为VCL
版本(只需删除源代码中单元名称前面的“Q”)。
编辑:您可能会尝试进入注册表(D7将是HKCU\Software\Borland\Delphi\7.0
)并暂时将Known IDE Packages
中的delphiCLXide条目的名称更改为其他名称(在名称前加上下划线或东西)。然后启动IDE。您应该收到有关Delphi无法加载程序包的错误消息,并询问您是否要在将来尝试再次加载它。回答'是',让IDE继续加载。然后再次尝试您的项目,看看会发生什么。
上面的步骤会暂时从IDE设计器中加载CLX。 (不用担心,如果不是问题,您可以再次重命名该密钥以将其恢复。如果它没有返回,请确保IDE未在Disabled Packages
条目中添加条目;如果确实如此,只需删除它。)
如果此方法有效,您可以打开项目的项目选项(.DOF)文件,并从Packages
列表中删除CLX库。这可以防止在加载项目时包含它。
一旦你确定问题是否真的
答案 2 :(得分:0)
我的第一个建议是使用XP Mode或其他VM基础设施在Windows 7上运行这样一个旧的Delphi版本(我这样做)。
另一种可能的方法是使用Windows 7中的兼容性设置将其设置为XP,并使Delphi 7进程免于系统可能强加的DEP(数据执行保护)策略。使用较旧的Borland IDE和VS 2003启用DEP时遇到了一些麻烦。