64位BHO不加载内IE 9 64加载、BHO、IE

2023-09-08 00:56:36 作者:日久不生情。

我已经创建了32位和64位版本的我的BHO(C ++ code)。 32位版本的加载罚款在IE 9的32位,而不是64位版本的IE 9 64在Windows 7上。

I've created a 32-bit and 64-bit version of my BHO (C++ code). The 32-bit version loads fine in IE 9 32-bit, but not the 64-bit version in IE 9 64 on WIndows 7.

我有双重检查的是:

64位的DLL确实(在DLL DUMPBIN /头)的64位code 注册表项 HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微软\的Windows \ CurrentVersion \ Explorer的\浏览器辅助对象 HKEY_CLASSES_ROOT \ Wow6432Node \ CLSID 正确 在我的IE浏览器的64位可以加载第三方扩展(2 BHO实际装载) the 64-bit DLL is indeed 64-bit code (dumpbin /headers on the DLL) Registry entries HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects and HKEY_CLASSES_ROOT\Wow6432Node\CLSID are correct my IE 64-bit can load 3rd party extension (2 BHO are actually loaded)

我不知道该怎么办,在这一点上调试问题。

I don't know what to do at this point to debug the issue.

注:我所知道的Browser帮助对象不列入获取IE8 以及约64位BHO等相关问题的加载,但他们的问题和解决方案是不同的。

Note: I'm aware of Browser Helper Object doesnot get loaded in IE8 and other related questions about 64-bit BHO, but their problem and solutions are different

推荐答案

问题是我如何注册一个BHO 64位的误解。通过调用32位或64位版本REGSVR32的,该DLL将被注册为一个32位(Wow6432Node)或64位。我不担心我的DLL中使用的注册表,才CAL的权利REGSVR32。

The problem was my misunderstanding of how to register a BHO for 64-bit. By calling the 32-bit or 64-bit version of regsvr32, the DLL will be registered as a 32-bit (Wow6432Node) or 64-bit. I don't have to worry about which registry to use inside my DLL, only to cal the right regsvr32.