Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 使用Visual Studio 2008和IE 10调试32位ActiveX控件_Debugging_Visual Studio 2008_Activex_32bit 64bit_Internet Explorer 10 - Fatal编程技术网

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

Debugging 使用Visual Studio 2008和IE 10调试32位ActiveX控件,debugging,visual-studio-2008,activex,32bit-64bit,internet-explorer-10,Debugging,Visual Studio 2008,Activex,32bit 64bit,Internet Explorer 10,在使用IE 10运行时,使用Visual Studio 2008调试32位ActiveX控件时,我无法命中断点 经过深入研究,我了解到当HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\TabProcGrowth设置为非零值时,IE 10将仅在32位模式下运行。这使我能够运行32位ActiveX控件。但是,这也会禁用在使用Visual Studio进行调试时命中断点的功能,因为要使用断点进行调试,此值必须为零。如其他问题/回答

在使用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必须为非零

对我可能做的事有什么建议吗


在IE+10Win864位+VS2008:

中如何调试C++
  • 用培养基保持生长(不变!!)
  • 使用命令C:\Program Files(x86)\Internet Explorer\iexplore.exe设置VS2008 OCX项目调试,Attach=Yes,Debugger Type=Native Only
  • 打开Internet Explorer 10表单WIN8任务栏
  • 在Internet Explorer 10的url中输入目标ocx htm文件路径。然后按enter键加载htm
  • 启用IE.10 ActiveX模式
  • 当IE10准备好ActiveX模式时,运行VS2008 OCX project,该project将附加IE10和断点
  • 再次刷新IE.10 html以开始调试ocx源代码

  • 以下是我发现的使用VS2013和IE10(Win7 64位)调试32位ActiveX控件的方法:

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