设置VS2008和IE8 调试ATL控件
VS2008设置篇:
设置VS2008 通过IE8 调试ATL的ActiveX控件的步骤如下:
(1) 设置项目属性
通过菜单项 “项目—》你的项目属性”如下图:
(2) 在弹出的属性页对话框中选中“配置属性—》调试”,在右边填入下列参数:
命令 :C:\Program Files\Internet Explorer\iexplore.exe(你的IE8执行文件位置)
工作目录:$(InputDir)FileUploader.htm(其中FileUploader.htm更换成VS为你生成的Html文件名。
附加 :否。(指示调试器不要附加现有IE进程,而是新建一个)
其它选项采用默认值即可。结果如下图:
至此VS2008的设置完成。现在你只要按F5启动调试,就能调用IE打开测试网页。然后在“调试—》附加到进程”的对话框中附加另一个未变灰的iexploer.exe进程,再刷新,就可以激活断点了。如下图:
大家一定觉得这样调试要手动附加进程很麻烦,其实这是因为IE8默认为每个标签页都启动一个进程的原因。大家打开一个IE8网页,会在任务管理器中发现多了两个iexplore.exe进程,一个IE8进程,一个是标签页进程。因为VS每次启动调试时都错误的附加在IE8进程,所以我们要手动附加标签页进程才能启动断点。有没有办法解决这个问题呢,答案是有,只要设置ie8为单进程模式就行。下面进入IE8设置篇。
IE8设置篇:
(1) 设置IE8为单进程模式。
运行gpedit.msc组策略管理器。在“计算机配置—》管理模板—》windows组件—》Internet Explore”中打开“选项卡进程增长”,设置为已启用,选项卡进程增长为0。应用之后IE8就进入单进程模式。这时VS只要直接按F5就能直接进入调试进程,激活断点。设置图如下:
(2) 设置允许活动内容运行。
在启动调试,网页经常会呈现如下提示框,每次都要确认,很麻烦。
以下方法可以消除这个提示框。
在IE中打开Internet 选项对话框,选择高级选项卡,勾选里面的“允许活动内容在我的计算机上运行”,重启IE就可以消除这个烦人的提示框。
其他参考如下:
若要调试 ActiveX 控件,必须指定一个容器(可执行文件)用于运行控件。
为调试会话指定容器
在“解决方案资源管理器”中选择项目。
从“视图”菜单中,选定“属性页”。
在“项目属性页”对话框中,打开“配置属性”文件夹并选定“调试”。
在“调试”类别下,找到“命令”属性。
指定容器的路径名。例如,C:\Program Files\Internet Explorer\IEXPLORE.EXE。
如果指定 Internet Explorer 作为容器,并且正在使用 Active Desktop,在“命令参数”框中键入/new 。
单击“确定”。
如果在“项目属性页”对话框中没有指定容器,则在开始调试时可以指定容器。当您选择执行命令开始调试时,将出现“调试会话的可执行文件”对话框。在对话框中指定容器的路径名。
参考:http://technet.microsoft.com/zh-cn/office/w54zfak1.aspx
或者,调试->附加到运行进程->选择IEXPLORE.exe.(该进程加载了你的ActiveX 控件.)参考:http://msdn.microsoft.com/zh-cn/c6wf8e4z.aspx
为调试会话指定容器
在“解决方案资源管理器”中选择项目。
从“视图”菜单中,选定“属性页”。
在“项目属性页”对话框中,打开“配置属性”文件夹并选定“调试”。
在“调试”类别下,找到“命令”属性。
指定容器的路径名。例如,C:\Program Files\Internet Explorer\IEXPLORE.EXE。
如果指定 Internet Explorer 作为容器,并且正在使用 Active Desktop,在“命令参数”框中键入/new 。
单击“确定”。
如果在“项目属性页”对话框中没有指定容器,则在开始调试时可以指定容器。当您选择执行命令开始调试时,将出现“调试会话的可执行文件”对话框。在对话框中指定容器的路径名。
参考:http://technet.microsoft.com/zh-cn/office/w54zfak1.aspx
或者,调试->附加到运行进程->选择IEXPLORE.exe.(该进程加载了你的ActiveX 控件.)参考:http://msdn.microsoft.com/zh-cn/c6wf8e4z.aspx