2009-07-31 77 views
2

我正在尋找在MFC應用程序中使用「Microsoft Web瀏覽器」ActiveX控件,但我們需要它是IE6,以支持遺留的東西和所有不那麼有趣的東西。但是,它將部署的系統可能安裝了IE7或IE8。嵌入IE6與MFC

我不是一個COM/ActiveX傢伙,儘管我知道我的方式圍繞C++和MFC。我在過去幾天一直在閱讀有關DLL重定向和SxS DLL的文章,但他們並沒有讓我走得太遠(實際上,我相信MSDN提到SxS不適用於受系統保護的DLL或OCX文件)。

我找到了IE部署工具包的構建器,並希望我可以將它與DLL重定向結合起來使用,但是到目前爲止,這方面的運氣還是不大。如果有人能提供幫助,我會很感激。

謝謝!

彌敦道

回答

1

曾經有一個「Multiple IE」的安裝程序,黑客會在Windows XP上的東西,讓IE的多個版本共存。它已經停止了一段時間,如頁面注意:

多個IE不再維護,並且沒有計劃繼續維護它!

該策略也顯然導致隨機IE崩潰,只能在Windows XP上工作,並且被Windows更新破壞(至少一次)。


,而不是試圖破解一起類似的解決方案(這似乎是很脆,很可能會繼續打補丁了最新的安全修補程序痛),可能更容易考慮一個完全不同的方法的問題:

修正原因:

  • 修復/升級底層遺留代碼。您可能會獲得與其他更新的基於標準的瀏覽器的兼容性,這是一項不錯的獎勵。 (誠​​然,這是有時候不是一個可行的方法。)

控制環境:

  • 設置運行Windows XP與IE6的虛擬機。使用虛擬機,您可以在穩定,經過測試的配置中確保所需的環境。有部署/集成工具也可能有用(用戶不必知道應用程序正在完全獨立的Windows XP實例中運行)。

發瘋,但(略)可維護性*:

  • 如果你不能修復底層遺留的東西,它可能沒有被改變,所以儘管。弄清楚如何實際修復它,並「即時」修補以確保IE7/IE8的兼容性。 (即編輯腳本/ CSS /頁面內容/格式/等,以解決下載後,但瀏覽器引擎呈現之前的問題。)

**(不是試圖讓一起工作的IE的多個版本。)*

這些只是想法,但希望他們幫助激發一些有用的東西。祝你好運。

+0

感謝您的回覆。我已經玩過多個IE瀏覽器,而且它確實讓我擔心它根本不適用於Vista。我希望也許是由於DLL互操作性以外的其他原因,但我想這可能是一廂情願的想法。 ;) 不幸的是,我無法訪問傳統的東西來修復它,所以解決方案A是不可能的。虛擬機也是不現實的,因爲遺留的東西被多久使用一次,並給予使用它的人。第三種選擇是一個有效的觀點,儘管如果這是最簡單的方法似乎很荒謬。 ;) 謝謝你的迴應! – Nathan 2009-08-02 13:07:36

1

Webbrowser ActiveX控件在Quirks模式下將使用舊的IE5(!)呈現。 (有關詳細信息,請參見IEBlog - 適用於IE [6-8])的怪癖/標準區分)您提到了「遺留物」 - 我認爲這不是那麼有效的頁面,因此也是怪癖模式。

這意味着什麼:嵌入式控件,對於不符合標準的頁面(大多數遺留的東西不是),即使在IE8中也會使用舊的IE5 Quirks模式渲染。要測試您的代碼,您可以使用MS Internet Explorer Application Compatibility VPC Images - Virtual PC(啤酒中免費)的一組磁盤映像,分別安裝了IE6,7和8。我正在爲這些遺留應用程序開發新功能,並且所有三種瀏覽器在Quirks模式下(IE8有一些很小的怪癖模式怪癖,但這些都可以很容易地解決)表現相同的方式。

+0

嘿,謝謝你的回覆。在我們的例子中,應用程序使用瀏覽器嗅探來確定它是否是IE6(其中的一個==代替=缺乏預見性的情況),所以不幸的是它實際上需要是IE6。不過,感謝您花時間回答。 :) – Nathan 2009-08-02 13:05:18