我有一个正在使用IE6,7,8& 9 Beta 但在IE9 RC上崩溃。 我可以看到网页成功使用了ActiveX的界面,但是当我尝试从ActiveX调用IDispatch :: Invoke时,ActiveX崩溃了。
我的应用程序是从一个CHtmlView(IE容器),一个网页(GUI)和一个ActiveX(应用程序本身)构建的,我看到网页成功使用了ActiveX的界面但是当我尝试将数据发送回网页时崩溃。
在调试代码(vs2005 c ++)之后,我发现所有IDispatch函数都会导致崩溃,但这种行为只能在RC版本中重现,我们的产品已经运行了3年没有问题,现在每个客户端都升级了到RC不能再使用我们的产品了。
是否有任何可能导致此类行为的变化?根据在线文件我找不到任何东西。 感谢。
答案 0 :(得分:1)
IE9RC引入了ActiveX过滤:
Internet Explorer 9 RC允许您阻止所有人的ActiveX控件 站点,然后将它们重新打开,仅用于您信任的站点 新的ActiveX过滤选项。
答案 1 :(得分:1)
经过艰苦的斗争后,我找到了答案(2年前)。 那时我关闭了IE9论坛上的问题,但我忘了关闭这个帖子。
谢谢@Paul Sweatte提醒我。
我们的框架如下工作:
第二部分是问题,显然在旧的IE版本中,javascript eval函数会创建IDispatch对象,你可以将对象传递给activex。
在IE9中以及许多其他更改中,这也发生了变化,而eval将返回其他内容。
当activex尝试执行回调时会发生挤压。 这是......非常难以调试。