C ++ BHO(IE加入)问题

时间:2011-06-02 16:57:27

标签: c++ com atl bho

我正在使用helloworld示例创建一个BHO。 Building Browser Helper Objects with Visual Studio 2005

BHO没有加载,我无法点击SetSite函数中的断点。

请告诉我注册BHO并随后进行调试所需的其他设置。

我正在使用IE9,VS2008。

非常感谢

4 个答案:

答案 0 :(得分:2)

这是因为调试器没有附加到正确的IE9进程。要解决此问题,您需要指示IE9对所有选项卡使用单个进程。这可以通过设置注册表值来完成:HKEY_CURRENT_USER \ Software \ Microsoft \ Internet Explorer \ Main \ TabProcGrowth = 0

希望这有帮助。

答案 1 :(得分:1)

您确定已经注册了吗?假设您已准确地在上面的链接中实现了该示例(特别是关于在.rgs文件中使用正确的CLSID的部分),请尝试从提升/管理CMD窗口:

regsrv32 /s mybho.dll

这将在DLL中注册COM对象,并将其作为BHO注册到Internet Explorer

此外,使用IE9,您需要确保在Addons管理器中启用它(工具/管理插件)

答案 2 :(得分:1)

我有同样的问题。我使用的是64位IE9,但是我将调试器更改为使用32位,现在它对我有效。

在VS 2008中,转到菜单:

项目 - > 项目名称属性 - >配置属性 - >调试 - >命令

C:\ Program Files(x86)\ Internet Explorer \ iexplore.exe

之前我使用的是64位:

C:\ Program Files \ Internet Explorer \ iexplore.exe

还使用本地文件来避免保护模式出现问题:

命令参数:

某些本地html文件的路径

祝你好运......

答案 3 :(得分:0)

您是否在保护模式下运行?如果是,那么SetSite中的断点永远不会被击中。 请参阅http://msdn.microsoft.com/en-us/library/bb250462.aspx以了解有关受保护模式的更多信息。

您是否也尝试使用regasm注册BHO?