2011-02-14 69 views
2

我有一個工作代碼,正在工作在IE6,7,8 & 9測試版但在IE9 RC崩潰。 我可以看到網頁正在成功使用ActiveX的接口,但是當我嘗試從ActiveX調用IDispatch :: Invoke時,ActiveX崩潰。我的應用程序是從一個CHtmlView(IE容器)一個網頁(GUI)和一個ActiveX(應用程序本身)構建的,我看到該網頁成功使用ActiveX接口,但是當我嘗試將數據發送回網頁我崩潰了。當調用IDispatch IE9 RC崩潰::調用

調試代碼(vs2005 C++)後,我發現所有的IDispatch函數都會導致崩潰,但是這種行爲只能用RC版本重現,我們的產品已經運行了3年而沒有問題,現在每個客戶端升級到RC不能再使用我們的產品。

有沒有可能導致這種行爲的變化?根據網上的文件,我找不到任何東西。 謝謝。

回答

1

經過無謂的糾纏,我找到了答案(2年前)。 當時我關閉了IE9論壇上的問題,但我忘了關閉這個線程。

謝謝@Paul Sweatte提醒我。

我們的框架工作如下:

  1. 的ActiveX和網絡有一組已知的字符串,如:「在onStart」,「在onPause」等...
  2. 該網站將註冊功能在發動機中。
  3. 需要

時,第二部分是問題,顯然是在舊版本的IE,JavaScript的eval函數將創建的IDispatch對象的activex將調用回調,並且您可以將對象傳遞到ActiveX。

在IE9以及其他許多變化,這也改變了,eval會返回別的東西。

當activex試圖執行回調時會發生暗戀。 這是......很難調試。

1

IE9RC介紹ActiveX篩選:

的Internet Explorer 9 RC允許您爲阻止ActiveX控件的所有 網站,然後將它們重新僅供您使用 新的ActiveX篩選選項信任的網站。

+0

嗨保羅謝謝你的評論,但在我的情況下,這不是答案。我忘了更新這個線程的答案,但我會立即更新它。 – ManicQin 2013-10-06 07:12:51