仅在特定计算机上的Delphi访问冲突
我在一个项目上创建计算机1,现在我想在计算机2上编辑并运行它。两台计算机都具有相同的操作系统和相同的Delphi版本。当我试图编译计算机2项目(不进行任何修改)的访问冲突出现了,虽然有计算机1.仅在特定计算机上的Delphi访问冲突
这是一个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
这是不是真的对我很重要的线在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
回答:
看起来像权限issue.try使用管理员权限运行您的应用程序。将调试点或日志准确查看此错误发生的位置是个不错的选择
以上是 仅在特定计算机上的Delphi访问冲突 的全部内容, 来源链接: utcz.com/qa/259367.html