• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

仅在特定计算机上的Delphi访问冲突

delphi 来源:qGold 4次浏览

我在一个项目上创建计算机1,现在我想在计算机2上编辑并运行它。两台计算机都具有相同的操作系统和相同的Delphi版本。当我试图编译计算机2项目(不进行任何修改)的访问冲突出现了,虽然有计算机1.仅在特定计算机上的Delphi访问冲突

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

错误发生在我的应用程序的GUI显示之前,所以我怎么能知道,我的代码的哪部分是负责这个?

通常,我会尝试通过在备忘录中添加内容来查找错误,以便在出现错误的位置查看错误,但由于此错误发生在我可以看到任何事情之前想知道如何知道发生了什么。

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

大约像40级的错误,从中很大部分是在FMX.Platform.Winfunction TPlatformWin.HandleMessage: Boolean;if FIsPostQuitMessage then

这是不是真的对我很重要的线在WebBrowser thows我也可以继续使用计算机1,在那里没有错误发生,但计算机2有点快,所以这将是很好的得到这个错误固定在计算机2上。

什么可能会导致此错误,为什么他们只在计算机2上显示?

更新

本来这个项目是一个VCL项目,我设法“转换”成FMX项目。我之前已经完成了这么多版本,并且这不是问题,因为它的工作原理以及我刚刚重用了可视化组件,因为这是很多工作而手动重新创建会很痛苦。这可能导致了错误吗?我真的不能相信的,这将是计算机1人在所有

UPDATE2

FormCreate被称为甚至在发生在应用程序启动时的错误没有问题的原因,所以我不知道逑到跟踪这个错误,因为我的代码似乎没有任何责任。

UPDATE3

我忘了提,我开始电脑2开发的项目,然后我搬到计算机1和它的工作很好,我就先回去了电脑2以上情况说明发生。

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


===========解决方案如下:

此问题发生在urlmon.dll中。问题是由于IE浏览器,而不是你的应用程序,建议的解决方法是删除并重新安装IE或修复在此URL https://www.experts-exchange.com/questions/10316551/Access-violation-fault-in-module-urlmon-dll.html


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)