0

与IE 10调试32位ActiveX控件与Visual Studio 2008和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必须为非零值。

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

在此先感谢。

回答

0

如何调试C++在IE.10 + WIN8 64位+ VS2008:

  1. 保持TabProcGrowth与中等(不改变!)
  2. 设置VS2008 OCX项目进行调试命令C:\ PROGRAM文件(x86)\ Internet Explorer \ iexplore.exe,附件=是,调试器类型=仅限本机
  3. 打开Internet Explorer 10窗体的WIN8任务栏。
  4. 键入Internet Explorer 10的url中的目标ocx htm文件路径中,然后按Enter键以加载htm。
  5. 启用IE.10 ActiveX模式。
  6. 当IE10准备好ActiveX模式时,运行您的VS2008 OCX procject,它会将IE10连接到您的中断点。
  7. 再次刷新IE.10 html以开始调试您的ocx源代码。
0

这里是我发现调试一个32位的ActiveX控件与VS2013和IE10(Win7的64位)的方式:

  1. VS:设置OCX项目调试属性:命令= C :\ Program Files \ Internet Explorer \ iexplore.exe,附件=否
  2. 在VS中启动调试器(IE10尚未启动):如果出现警告消息(“iexplore.exe'的调试信息不​​能找到...“),选择”是“(继续调试)。 IE10现在应该已经启动了。
  3. 在VS菜单中,转到调试>附加到进程:请注意现有的“iexplore.exe”进程的ID。
  4. 在IE10中打开你的ocx html文件,然后返回VS的Attach to Process屏幕:刷新进程列表,然后附加到新出现的“iexplore.exe”进程。
  5. 刷新IE10中的ocx html页面:这应该会将您的VS调试器带到您的第一个断点。