仅在特定计算机

时间:2017-12-03 03:22:05

标签: delphi runtime-error

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

这是一个FMX项目,访问权限违规发生在包含" System.Win.OleControls procedure TDelegatedOleControl.CreateControl; 中> OleCheck(FPersistStream.InitNew) "

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

通常情况下,我会尝试通过向备忘录添加内容来查找错误,以查看出现问题的地方,但是在我看到任何我想知道如何知道的情况之前发生此错误,发生这种情况。

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

网络浏览器会发现类似于40个错误的错误,其中大多数错误来自行中 FMX.Platform.Win 中的 function TPlatformWin.HandleMessage: Boolean; 包含 if FIsPostQuitMessage then

这对我来说并不重要,因为我还可以继续使用没有错误的计算机1,但是计算机2的速度要快一些,所以在计算机2上修复这些错误会很好。 / em>的

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

更新

最初这个项目是一个VCL项目,我设法"转换"进入FMX项目。我之前已经完成了很多这个版本,这不是一个问题,因为它有效,而且我只是重复使用了可视化组件,由于这是很多工作,因此手动重新创建会很痛苦。这可能是导致错误吗?我不能相信这就是计算机1完全没有问题的原因

UPDATE2

即使在调用FormCreate之前,应用启动时出现错误,因此我不知道如何跟踪此错误,因为我的代码似乎没有任何责任。

UPDATE3

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

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

2 个答案:

答案 0 :(得分:1)

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

尝试通过此网址https://www.experts-exchange.com/questions/10316551/Access-violation-fault-in-module-urlmon-dll.html

提供的方法

答案 1 :(得分:-2)

看起来像权限issue.try以管理员权限运行您的应用程序。放置调试点或日志以查看此错误的确切位置

是一个不错的选择