2013-01-03 108 views
3

我創建了一個32位和64位版本的BHO(C++代碼)。的32位版本的載荷IE 9 32位,而不是64位版本在IE 9 64上的WIndows細7.64位BHO無法加載IE 9 64

我有雙重檢查的是:

  • 64位DLL的確(在DLL dumpbin /headers)64位代碼
  • 註冊表項HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper ObjectsHKEY_CLASSES_ROOT\Wow6432Node\CLSID是正確的
  • 我的IE 64位可以加載第三方擴展(2 BHO是實際加載)

我不知道現在要做什麼來調試問題。

注:我知道的Browser Helper Object doesnot get loaded in IE8和其他約64位BHO相關的問題,但他們的問題和解決方案是不同的

+1

只要調試進行,我會啓動進程監視器並捕獲IE進程的所有註冊表和文件系統訪問。特別是,尋找未找到的結果,希望您能發現進程試圖在註冊表或fs中查找的位置。 –

+0

你的DLL是否被加載了?也就是說,如果你在windbg或ntsd下運行,併發出'sxe ld yourdll.dll'然後繼續運行,那麼斷點是否會受到影響?如果它確實,然後你立即卸載,有一個DLL依賴問題。如果你從未打過這個,那麼你的註冊是錯誤的。如果前者,你喜歡靜態還是動態的crt? –

回答

0

的問題是我如何註冊一個BHO 64位的誤解。通過調用regsvr32的32位或64位版本,DLL將被註冊爲32位(Wow6432Node)或64位。我不必擔心在我的DLL中使用哪個註冊表,只能調用正確的regsvr32。

相關問題