【问题标题】:AV in IDE when opening any project or creating new in Delphi 7打开任何项目或在 Delphi 7 中创建新项目时 IDE 中的 AV
【发布时间】:2011-03-31 13:50:10
【问题描述】:

经过多年无故障使用,Delphi 7 现在在地址处抛出访问冲突 模块“vclx70.bpl”中的 40233A3E。读取地址 0000021C。

启动IDE时,默认的空项目和单元/表单出现,编译运行正常。

我正在开发 Windows 应用,在 Windows 7 (x64) 上运行。

我已经好几个月没有安装任何新的软件包或工具了。

我停了下来,死在水里,无法工作。

除了完整的翻录和重新安装之外的任何建议(这需要很多小时......)

编辑:我卸载并重新安装了 Delphi 7。现在我在 vcl70.bpl 中遇到访问冲突。我原以为卸载 D7 会完全删除其所有库等...卸载 D7 后我应该手动删除哪些文件夹?

【问题讨论】:

  • 你最近在那台机器上做了什么改动?
  • 删除 HKLM\Software\Borland\Delphi 和 HKCU\Software\Borland\Delphi 下的整个注册表分支(如果 D7 是唯一安装的版本 - 如果你有更多,只需删除 7.0 分支)。这听起来越来越像第 3 方组件问题。

标签: delphi


【解决方案1】:

问题已修复(并且避免了主要的机器重建!)

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

执行这些步骤后,问题似乎已得到解决。

【讨论】:

  • 太棒了!你应该接受这个答案,所以很明显它已经解决了。我忘记了 .dsk 文件和 Delphi 版本
【解决方案2】:

在如此低的内存地址读取通常是第三方组件的问题。然而,你说你已经几个月没有安装任何新东西了。

另一件奇怪的事情是你在 vclx70 中遇到了错误,它是 CLX 库之一。您是否正在使用CLX(剩余的跨平台 - Kylix)表单或对话框做任何事情?

如果没有,您可以在您的源中搜索QDialogsQForms%PROGRAMFILES%\Borland\Delphi7\Source\Clx 中的任何其他单位,看看是否错误地添加了您不打算拉动@ 的内容987654326@ 进入您的项目。如果是这样,请将其更改为 VCL 版本(只需从源中的单元名称前面删除“Q”)。

编辑:您可以尝试进入注册表(D7 将是 HKCU\Software\Borland\Delphi\7.0)并临时将 Known IDE Packages 中的 delphiCLXide 条目的名称更改为其他名称(在名称前加下划线或其他名称)。然后启动IDE。您应该会收到一条关于 Delphi 无法加载软件包的错误消息,并询问您是否想在将来再次尝试加载它。回答“是”,然后让 IDE 继续加载。然后再试一次你的项目,看看会发生什么。

上述步骤会暂时从 IDE 设计器中加载 CLX。 (不用担心,如果不是问题,您可以再次重命名密钥以将其放回。如果它没有返回,请确保 IDE 没有在 Disabled Packages 条目中添加条目;如果它有,只是删除它。)

如果可行,您可以打开项目的项目选项 (.DOF) 文件,然后从 Packages 列表中删除 CLX 库。这可以防止在加载项目时包含它。 一旦你确定了问题是否真的存在

【讨论】:

  • 感谢肯的建议。不,我从未接触过 CLX 的东西。即使我尝试从头开始创建新项目(文件、新建、应用程序...)也会出现此问题
  • 尝试删除所有包,只留下 vcl70。
【解决方案3】:

我的第一个建议是使用 XP Mode 或其他 VM 基础架构在 Windows 7 上运行这么旧的 Delphi 版本(我就是这样做的)。

另一种可能的方法是使用 Windows 7 中的兼容性设置将其设置为 XP,并使 Delphi 7 进程免于系统可能施加的 DEP(数据执行保护)策略。我在使用旧版 Borland IDE 和 VS 2003 启用 DEP 时遇到了一些问题。

【讨论】:

  • 我想我没有把我的平台拼写清楚。多年来,我在这台运行 Windows 7 (x64) 的机器上运行良好。
  • @Robert Frank:但我们谈论的是一个非常古老的程序。使用兼容性垫片的 XP 模式并确保至少对于 Delphi IDE 关闭 DEP 仍然是相关的。事实上,在我安装了一些更改默认 DEP 策略以强制执行的软件后,我被后者咬了,它应该在我的配置中选择退出。当然,它仍然可以是不同的东西。但去年的 DLL 放置错误也引起了一些轰动,这会影响与旧程序的兼容性。
猜你喜欢
  • 2021-04-19
  • 2020-09-01
  • 2017-07-23
  • 2015-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多