【发布时间】:2013-01-03 04:39:23
【问题描述】:
我创建了一个 32 位和 64 位版本的 BHO(C++ 代码)。 32 位版本在 IE 9 32 位中可以正常加载,但 64 位版本在 IE 9 64 中的 WIndows 7 中加载不正常。
我已经仔细检查过:
- 64 位 DLL 确实是 64 位代码(DLL 上的
dumpbin /headers) - 注册表项
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects和HKEY_CLASSES_ROOT\Wow6432Node\CLSID正确 - 我的 64 位 IE 可以加载第 3 方扩展(实际加载了 2 个 BHO)
我现在不知道如何调试问题。
注意:我知道Browser Helper Object doesnot get loaded in IE8 和其他有关 64 位 BHO 的相关问题,但他们的问题和解决方案不同
【问题讨论】:
-
就调试而言,我会启动进程监视器并捕获 IE 进程的所有注册表和文件系统访问。特别是,查找 NOT FOUND 结果,希望您能发现进程试图在注册表或 fs 中查找的位置。
-
你的 DLL 是否被加载了?即,如果您在 windbg 或 ntsd 下运行,并发出
sxe ld yourdll.dll然后继续运行,该断点会被命中吗?如果确实如此,然后您会立即卸载,则存在 dll 依赖问题。如果你从来没有打过这个,那么你的注册是错误的。如果是前者,你喜欢静态crt还是动态crt?
标签: internet-explorer 64-bit bho add-on