【问题标题】:Delphi access violation only on specific computer [closed]Delphi访问冲突仅在特定计算机上[关闭]
【发布时间】:2017-12-03 03:22:04
【问题描述】:

我正在处理我在计算机 1 上创建的项目,现在我想在计算机 2 上编辑和运行它。两台计算机具有相同的操作系统和相同的 Delphi 版本。当我尝试在计算机 2 上编译项目时(不做任何修改),出现了访问冲突,尽管计算机 1 上没有问题。

这是一个 FMX 项目,访问冲突发生在 procedure TDelegatedOleControl.CreateControl; 中包含“OleCheck(FPersistStream.InitNew) 的行中的 System.Win.OleControls >”。

错误发生在我的应用程序的 GUI 出现之前,所以我怎么知道我的代码的哪一部分对此负责?

通常我会尝试通过向备忘录中添加内容来查找错误,以查看哪里出了问题,但是由于这个错误发生在我看到任何我想知道的内容之前,我想知道它发生在哪里。

当我继续并忽略这个异常时,在应用程序中玩弄似乎没有任何影响,因为一切都按预期工作。不幸的是还有另一个问题。我在应用程序内的框架上有一个 TWebbrowser。在计算机 1 上一切正常,但在计算机 2 上,当我尝试加载站点时,它显示了一堆访问冲突错误。不过,这也不会影响应用的使用。

网络浏览器抛出了大约 40 个错误,其中大部分在包含 的行中的 function TPlatformWin.HandleMessage: Boolean; 中的 FMX.Platform.Win if FIsPostQuitMessage then

这对我来说并不重要,因为我还可以继续使用计算机 1,不会出现错误,但计算机 2 的速度要快一些,因此最好在计算机 2 上修复此错误。

什么可能导致此错误,为什么它们只出现在计算机 2 上?

更新

最初该项目是一个 VCL 项目,我设法将其“转换”为 FMX 项目。我以前做过很多版本,这不是问题,因为它可以工作,而且我只是重用了视觉组件,手动重新创建会很痛苦,因为它需要做很多工作。这可能导致错误吗?我真的不敢相信这会是计算机 1 完全没有问题的原因

更新2

应用程序启动错误甚至在调用FormCreate 之前就发生了,所以我不知道如何跟踪这个错误,因为我的代码似乎没有任何责任。

更新3

我忘了提到,我开始在计算机 2 上开发项目,然后我转移到计算机 1,它工作正常,当我试图回到计算机 2 时,发生了上述情况。

更新4 FormCreate 过程开始前的错误是this,它指向this 我很久以前删除了IE并忘记了它。这应该是问题,因为计算机 1 上的 IE 仍然可用,并且没有出现错误。

【问题讨论】:

  • "两台电脑都有 ... Delphi" 在第二台电脑上调试。确保首先启用调试 DCU。
  • 没有代码,没有错误描述......谁能知道这里的问题是什么?
  • 在答案下方发布了错误屏幕截图,我将在几个小时内将其更新到主帖,当我可以访问我的电脑时。

标签: delphi runtime-error


【解决方案1】:

这个问题出现在 urlmon.dll 中。问题是由于 IE 而不是您的应用程序,建议的解决方案是删除并重新安装 IE 或修复它

试试这个网址https://www.experts-exchange.com/questions/10316551/Access-violation-fault-in-module-urlmon-dll.html给出的方法

【讨论】:

  • 我想就是这样。由于..原因..很久以前,我删除了我的 IE。可能这影响了我的 TWebbrowser,因为它基于 IE。我将重新安装 IE 并让您知道这是否修复了它。我只是忘记了,我删除了 IE^^ 感谢您的提醒。
  • 如果对您有帮助,请将此标记为答案。
【解决方案2】:

看起来像是权限问题。请尝试以管理员权限运行您的应用程序。放置调试点或日志以查看此错误的确切位置是不错的选择

【讨论】:

  • 如何以管理员身份运行此应用程序?我应该以管理员身份启动 Delphi 还是必须更改应用程序的调用方式?另外我的应用程序不做任何管理工作,那么为什么这能解决问题呢?
  • 以管理员身份运行 delphi 没有帮助。
  • 你能分享详细的异常吗??
  • 请分享详细的例外情况
  • This 错误被转发到this 一段代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多