我正在尝试使用Visual Studio 2010中的ATL项目创建BHO。我正在关注这篇文章: http://msdn.microsoft.com/en-us/library/bb250489.aspx
当我到达“Take a Test Drive”时 - 我按F5,项目编译成功,但我收到一个错误弹出:“无法启动程序'... HelloWorld.dll'
我尝试了这里描述的解决方案:Unable to start program ATL Project C++。
我在“项目 - 属性 - 配置属性 - 调试 - 命令”中设置了“C:\ Program Files(x86)\ Internet Explorer \ iexplore.exe”。我按下F5,我又收到了一个警告:
“'iexplore.exe'的调试信息无法找到或不匹配。无法找到或打开PDB文件
您想继续调试吗?“
我回答“是”并启动IE,禁用所有断点并退出调试器。如果我尝试连接到正在运行的IE实例,则调试器不会退出,但是我的所有断点都会被禁用。
使用Visual Studio 2010调试C ++ BHO DLL的正确方法是什么。我的IE版本是11。
答案 0 :(得分:2)
使用Process Explorer from Sysinternals,您可以找到托管该页面的iexplore.exe进程的PID,因为当您使用鼠标悬停鼠标时,Process Explorer可以显示附加到IE进程的每个“选项卡”的名称关于这个过程。
识别出PID后,使用Attach to Process。
编辑:如果你想从头开始调试你的BHO(在SetSite等人之前),有一个丑陋的黑客:在MessageBox
中使用DllMain
(ATTACH_PROCESS)并使其显示当前的PID) 。附加到Process,然后关闭消息框。
答案 1 :(得分:1)
检查此注册表项 HKEY_CURRENT_USER \ Software \ Microsoft \ Internet Explorer \ Main \ TabProcGrowth ,并将其值设置为零(如果不是),这将只使一个Internet Explorer进程运行(而不是每个标签一个)。 也许这是你在尝试调试时遇到的问题......