我有一个在IE6、7、8和9 Beta上工作的代码,但是在IE9 RC上崩溃。我可以看到网页正在成功地使用ActiveX的接口,但是当我试图从ActiveX调用IDis补丁::Invoke时,ActiveX就崩溃了。
我的应用程序是由CHtmlView (IE容器)、网页(GUI)和ActiveX (应用程序本身)构建的,我看到网页成功地使用了ActiveX的界面,但是当我尝试将数据发送回网页时,我会崩溃。
在调试代码(vs2005 c++)之后,我发现所有IDispatch函数都会导致崩溃,但是这种行为只在RC版本中重现,我们的产品已经运行了3年左右,没有问题,现在升级到RC的每个客户端都不能再使用我们的产品了。
有什么改变会导致这样的行为吗?根据网上的文件,我什么也找不到。谢谢。
发布于 2013-10-06 07:29:40
经过艰苦的斗争,我找到了答案(两年前)。那时,我在IE9论坛上结束了问题,但忘了关闭这个帖子。
“谢谢你”保罗·斯威特提醒我。
我们的框架工作如下:
第二部分是问题,显然在旧的IE版本中,javascript eval函数将创建IDispatch对象,并且可以将对象传递给activex。
在IE9中,随着许多其他的更改,这种情况也发生了变化,而且eval还会返回其他一些内容。
当activex试图执行回调时,就会发生挤压。那是..。很难调试。
发布于 2013-10-05 19:34:16
IE9RC引入了ActiveX过滤:
Internet 9 RC允许您阻止所有站点的ActiveX控件,然后只为您信任的新ActiveX筛选选项打开它们。
https://stackoverflow.com/questions/4990609
复制相似问题