2013-12-17 44 views
0

我下面的C++例子創建BHO的Internet Explorer 8在這裏看到:沒有問題http://msdn.microsoft.com/en-us/library/bb250489.aspx附加的IE8只有當我調試它從Visual Studio

我設法編譯和調試擴展(我使用Visual Studio 2010)。如果IE是從調試器啓動的,當我點擊「工具」 - >「管理附加組件」時,我可以在IE中看到我所有的插件。但是,當我直接啓動IE8(通過雙擊它的圖標) - 我沒有看到插件。我100%確定我已經註冊了regsvr32.exe的插件。 我甚至試圖運行IE8「作爲管理員」,但沒有任何改變。

爲什麼我的插件在不使用調試器的情況下啓動IE8時消失?

+0

只是一個想法,但如果你有一個64位系統,是否可以在調試器下運行32位IE,而從桌面啓動64位IE ?然後,如果你從SysWOW目錄運行regsvr32.exe,那麼只有32位IE才能看到該附加組件,這是有道理的,但這只是一個簡單的猜測。 –

+0

謝謝 - 你是對的。在調試器中,我指定了以下命令: 「C:\ Program Files(x86)\ Internet Explorer \ iexplore.exe」 當我直接運行IE8時,它來自於: 「C:\ Program Files \ Internet Explorer \ iexplore.exe「 使用32位和64位版本IE註冊BHO的正確方法是什麼? –

+0

您無法爲IE 64b註冊32b BHO。第一項任務:成功構建一個64位版本的BHO :-) – manuell

回答

1

如果你有一個64位系統,在調試器下運行32位IE的可能性很大,而從桌面啓動64位IE。然後,如果你從SysWOW64目錄運行regsvr32.exe,那麼只有32位IE才能看到這個附加組件。

爲了克服這一點,你需要:

  • 讓您的解決方案的64位版本,創建在Visual Studio 64位編譯配置是相當清楚的解釋here
  • 與從C REGSVR32註冊產生的DLL :\ Windows \ System32不是C:\ Windows \ SysWOW64
相關問題