首页 文章

使用Visual Studio 2008和IE 10调试32位ActiveX控件

提问于
浏览
0

在使用IE 10运行时使用Visual Studio 2008调试我的32位ActiveX控件时,我无法命中断点 .

经过深入研究,我了解到当HKEY_CURRENT_USER \ Software \ Microsoft \ Internet Explorer \ Main \ TabProcGrowth设置为非零值时,IE 10将仅以32位模式运行 . 这使我能够运行32位ActiveX控件 . 但是,这也会禁用在使用Visual Studio进行调试时命中断点的能力,因为为了使用断点进行调试,此值必须为零 . 如其他问题/回答中所述:“出于调试目的,您可能会发现设置HKCU \ Software \ Microsoft \ Internet Explorer \ Main \ TabProcGrowth = 0(DWORD)会有所帮助 . 这将禁用IE中的进程分离 . ”

这会创建一个catch-22场景,因为为了调试,TabProcGrowth必须为零,但为了让IE 10以32位模式运行,TabProcGrowth必须为非零 .

对我可能会做什么的任何建议?

提前致谢 .

2 回答

  • 0

    如何在IE.10 WIN8 64bit VS2008中调试C:

    • 保持TabProcGrowth与中(不改变!!)

    • 设置VS2008 OCX项目使用命令C:\ Program Files(x86)\ Internet Explorer \ iexplore.exe进行调试,Attach = Yes,Debugger Type = Native Only

    • 打开Internet Explore 10表单WIN8任务栏 .

    • 键入Internet Explorer 10的URL中的目标ocx htm文件路径,然后按Enter键加载htm .

    • 启用IE.10 ActiveX模式 .

    • 当IE10处于ActiveX模式准备就绪时,运行VS2008 OCX procject,将IE10与您的断点连接起来 .

    • 再次刷新IE.10 html以开始调试您的ocx源代码 .

  • 0

    这是我用VS2013和IE10(Win7 64位)调试32位ActiveX控件的方法:

    • VS:将OCX项目调试属性设置为:Command = C:\ Program Files \ Internet Explorer \ iexplore.exe,Attach = No.

    • 在VS中启动调试器(IE10尚未启动):如果出现警告消息("debugging information for 'iexplore.exe' cannot be found..."),请选择"yes"(继续调试) . IE10应该已经启动了 .

    • 在VS菜单中,转到Debug> Attach to Process:请注意现有"iexplore.exe"进程的ID .

    • 在IE10中打开你的ocx html文件,然后返回VS的Attach to Process屏幕:刷新进程列表,然后附加到新出现的"iexplore.exe"进程 .

    • 刷新IE10中的ocx html页面:这应该将你的VS调试器带到你的第一个断点 .

相关问题