4

我创建了 BHO(C++ 代码)的 32 位和 64 位版本。32 位版本在 IE 9 32 位中可以正常加载,但在 Windows 7 上的 IE 9 64 中不能正常加载 64 位版本。

我已经仔细检查过:

  • 64 位 DLL 确实是 64 位代码(dumpbin /headers在 DLL 上)
  • 注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects并且HKEY_CLASSES_ROOT\Wow6432Node\CLSID是正确的
  • 我的 64 位 IE 可以加载第 3 方扩展(实际加载了 2 个 BHO)

我现在不知道该怎么做才能调试问题。

注意:我知道浏览器帮助对象没有在 IE8 中加载以及其他有关 64 位 BHO 的相关问题,但他们的问题和解决方案是不同的

4

1 回答 1

1

问题是我对如何为 64 位注册 BHO 的误解。通过调用 regsvr32 的 32 位或 64 位版本,DLL 将被注册为 32 位 (Wow6432Node) 或 64 位。我不必担心在我的 DLL 中使用哪个注册表,只需调用正确的 regsvr32。

于 2013-01-08T02:32:41.153 回答