﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-前进的路上-文章分类-VC</title><link>http://www.cppblog.com/wc250en007/category/13857.html</link><description>前进的路上</description><language>zh-cn</language><lastBuildDate>Thu, 10 Jun 2010 07:07:43 GMT</lastBuildDate><pubDate>Thu, 10 Jun 2010 07:07:43 GMT</pubDate><ttl>60</ttl><item><title>Visual studio小技巧</title><link>http://www.cppblog.com/wc250en007/articles/skill2.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Thu, 10 Jun 2010 06:24:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/articles/skill2.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/117556.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/articles/skill2.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/117556.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/117556.html</trackback:ping><description><![CDATA[<p>1.虽然日常VS的版本都已经到2010了，但是平时一些开发用的还是7.1的2003，前两天才发现一个监视小技巧，也许大虾们N年前早已发现，但是偶还是刚刚才知道，呵呵算是亡羊补牢吧<br><br>2003中监视容器，以前一直不知道怎么看，每次增加下标来查看，现在终于知道怎么节省时间了</p>
<img height=179 alt="" src="http://www.cppblog.com/images/cppblog_com/wc250en007/VC/watch.jpg" width=428 border=0><br>数组也是同理，FROMAT： 首地址,监视数量<br><br><br>下文原地址：<a href="http://www.cnblogs.com/jeet/archive/2005/04/10/134934.html">http://www.cnblogs.com/jeet/archive/2005/04/10/134934.html</a><br><br>2.我们每天都使用VS.Net进行C/S系统、B/S系统、Smart-Client应用的开发，无论你是熟练的程序员还是刚学.net的新手，都是安装了VS.Net进行开发，但你有没有想过怎样利用工具提供的一些便利功能，来提高我们工作的质量和效率呢。本文收集了VS.Net中一些浅为人知的技巧与功能，希望能对帮助你更好的利用工具。
<h1>1.&nbsp;&nbsp; 快速切换选项卡</h1>
<div>&nbsp;&nbsp;&nbsp; 在应用的开发中，我们常常会开打多个窗体设计器、类文件与其它类型的文件，文件一多用鼠标切换时通常要进行点击几次，可能通过快捷键Ctrl+Tab或Shift+Ctrl+ Tab进行切换。也可以通过拖拽文件的标题对其进行重新排列。</div>
<h1>2.&nbsp;&nbsp; 多文件查看</h1>
<div>&nbsp;&nbsp;&nbsp; 在VS.Net中，你可以同时查看两或多个文件，只需在打开选项卡中把想要查看的文件拖至IDE的右边或下边，你就可以垂直或水平平铺的方式查看文档。&nbsp;&nbsp; <br><span lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><v:shapetype id=_x0000_t75><v:stroke></v:stroke><v:formulas><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f></v:formulas><v:path></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype></span><img height=463 hspace=5 src="http://images.cnblogs.com/cnblogs_com/jeet/a.jpg" width=640 align=baseline>
<script language=jscript>setTimeout(CE_Editor_Edit_ftbBody_ID_InitFunc,10);function CE_Editor_Edit_ftbBody_ID_InitFunc(){ CE_Editor_Edit_ftbBody_ID.addBehavior('/CuteSoft_Client/CuteEditor/CuteEditor.htc.aspx?settinghash=d59cb2ae') }</script>
&nbsp;<!-- CuteEditor Editor:Edit:ftbBody End --> <br><span lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><v:shapetype id=_x0000_t75>&nbsp;<v:stroke></v:stroke><v:formulas><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f></v:formulas><v:path></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype>
<div align=center>&nbsp;</div>
</span></div>
<div><br></div>
<div></div>
<h1>3.&nbsp;&nbsp; 查看同一文档的不同部分</h1>
<div>&nbsp;&nbsp;&nbsp; 当需要对同一文档的不同部分代码的时候，我们可以通过拆分代码窗口来查看代码的不同部分。将鼠标移动到代码窗口右上角滚动条的上方，出现双向箭头时向下拖至你想拆分的位置，现在可以通过移动滚动条来查看代码的不同部分。&nbsp;&nbsp; <br><span lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><v:shapetype id=_x0000_t75>&nbsp;<v:stroke></v:stroke><v:formulas><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f></v:formulas><v:path></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype></span><span lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><span lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><v:shapetype id=_x0000_t75><font color=#000000>&nbsp;<span lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><v:shapetype id=_x0000_t75 coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">&nbsp;<span lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><v:shapetype id=_x0000_t75 coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <img height=463 src="http://images.cnblogs.com/cnblogs_com/jeet/2.jpg" width=640><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype></span><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype></span><v:stroke></v:stroke></font><v:formulas><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f></v:formulas><v:path></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype></span></span> </div>
<h1><span lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><v:shapetype id=_x0000_t75>&nbsp;<v:stroke></v:stroke><v:formulas><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f></v:formulas><v:path></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype></span> <br>4.&nbsp;&nbsp; 管理重复使用的代码片断</h1>
<div>&nbsp;&nbsp;&nbsp; 在编写代码时，有一些常用的代码片断会在不同的项目或解决方案中重复使用，如文件创建说明、数据库连接字串等。可以使用工具箱利用以下方法进行重用：</div>
<div>&nbsp;&nbsp;&nbsp; 选择要复用的代码片断；</div>
<div>&nbsp;&nbsp;&nbsp; 将选择的代码拖到工具箱的常规卡，工具箱在会显示&#8220;文本&#8230;&#8230;&#8221;（可以右键点<span lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><v:shapetype id=_x0000_t75>&nbsp;<v:stroke></v:stroke><v:formulas><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f></v:formulas><v:path></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype></span>击从菜单中选择重名命名进行改名）； </div>
<div>&nbsp;&nbsp;&nbsp; 使用时，在插入代码的位置单击鼠标，然后在工具箱上双击要插入的代码（也可以把代码片断拖至要插入的位置）。</div>
<div></div>
<div>&nbsp;<span lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><v:shapetype id=_x0000_t75> <v:stroke></v:stroke><v:formulas><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f></v:formulas><v:path></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype>
<div align=center><img height=463 src="http://images.cnblogs.com/cnblogs_com/jeet/3.jpg" width=640>&nbsp; </div>
</span></div>
<h1>5.&nbsp;&nbsp; 使用渐进式搜索</h1>
<div>&nbsp;&nbsp;&nbsp; 代码的搜索方法，VS.Net可以使用编辑菜单中的&#8220;搜索&#8221;进行特定字符串的搜索，也可以使用&#8220;查找符号&#8221;来查找特定的方法或属性，但&#8220;渐进式搜索&#8221;可能就少有人知了，&#8220;渐进式搜索&#8221;可以根据你键入的字符中在当前打开的代码中进行查找。使用快捷方式Ctrl+I，在代码窗口出现一个向下的箭头加望远镜图案，IDE下面的状态栏显示&#8220;渐进式搜索&#8221;字样，键入要查找的字符，自动定位至字符出现的位置，查找下一个字符出现位置可以再按Ctrl+I，上一个字符出现位置可以按Shift+Ctrl+I继续进行查找。 </div>
<div><span lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">&nbsp;</span> </div>
<h1><br><img height=463 hspace=5 src="http://images.cnblogs.com/cnblogs_com/jeet/4.jpg" width=640 align=baseline> </h1>
<img src ="http://www.cppblog.com/wc250en007/aggbug/117556.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2010-06-10 14:24 <a href="http://www.cppblog.com/wc250en007/articles/skill2.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在VC中查看变量的十六进制编码以及寄存器的状态 【转]</title><link>http://www.cppblog.com/wc250en007/articles/115874.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Thu, 20 May 2010 02:00:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/articles/115874.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/115874.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/articles/115874.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/115874.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/115874.html</trackback:ping><description><![CDATA[<p>假设<br>int *block;<br>在watch窗口查看block，看到的是block的地址<br>用block[0]，只能看到一个值<br>可以用&nbsp;&nbsp; block,10&nbsp;&nbsp;&nbsp; 来同时查看多个值<br>用(&amp;block[2]),6 可以查看block[2]到[7]<br><br>watch窗口语法规则<br>一.格式化数据和表达式赋值语句. <br>&nbsp;&nbsp; <br>常用变量格式化符(表达式的值后跟逗号,接格式化符,如"(int)0xFFFF,d"): <br>d,I:有符号的十进制数. <br>u&nbsp;&nbsp;&nbsp;&nbsp; :无符号的十进制数. <br>o&nbsp;&nbsp;&nbsp;&nbsp; :无符号的八 <br>x,X:十六进制数. <br>l,h:d,i,u,o,x,X的长前缀或短前缀. <br>f&nbsp;&nbsp;&nbsp;&nbsp; :有符号浮点数. <br>e&nbsp;&nbsp;&nbsp;&nbsp; :有符号的科学计数法. <br>g&nbsp;&nbsp;&nbsp;&nbsp; :有符号的浮点或有符号的科学计数法,用其中较短的一个. <br>c&nbsp;&nbsp;&nbsp;&nbsp; :单字符. <br>s&nbsp;&nbsp;&nbsp;&nbsp; :字符串. <br>su&nbsp;&nbsp; :双字节字符串. <br>st&nbsp;&nbsp; :双字节字符串或ANSI字符串,取决于AUTOEXP.DAT中的Unicode&nbsp;&nbsp; String设置. <br>hr&nbsp;&nbsp; :Windows类标记. <br>wm&nbsp;&nbsp; :Windows消息码. <br>&nbsp;&nbsp; <br>常用内存转储对象的格式化符(用法同变量格式化符): <br>ma&nbsp;&nbsp; :64个ASCII码字符. <br>m&nbsp;&nbsp;&nbsp;&nbsp; :以16进制书写的16字节,后跟16个ASCII字符. <br>mb&nbsp;&nbsp; :以16进制书写的16字节,后跟16个ASCII字符. <br>mw&nbsp;&nbsp; :8个字长. <br>md&nbsp;&nbsp; :4个双精度字. <br>mq&nbsp;&nbsp; :4个四倍字长的字. <br>mu&nbsp;&nbsp; :2字节字符(Unicode标准). <br>#&nbsp;&nbsp;&nbsp;&nbsp; :将指针扩展到指定的数值数目的内存存储单元上.(#代表一个数字) <br>&nbsp;&nbsp; <br>WATCH窗口允许重新设置数据变量的格式, <br>如:可用BY,DW表达式来定位指针的偏移量; <br>可用&amp;和*运算符,且两运算符都可直接操作内存地址; <br>甚至可用上下说明符明确指定变量的上下文. <br>总之,所有格式化方法和指定方法在WATCH窗口都有效 <br>&nbsp;&nbsp; <br>WATCH窗口是一个完整的表达式求值程序,可以在其中查看任何条件语句. <br>&nbsp;&nbsp; <br>表达式中可用的伪寄存器(可当普通变量进行查看): <br>@ERR:最后一个错误值,GetLastError&nbsp;&nbsp; API返回相同的值. <br>@TIB:当前线程的线程信息块.(调试器不能处理"FS:0"格式).&nbsp; <br>@CLK:时钟寄存器. <br>@EAX,@EBX,@ECX,@EDX,@ESI,@EDI,@DIP,@ESP,@EBP,@EFL <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :Intel&nbsp;&nbsp; CPU寄存器. <br>@CS,@DS,@ES,@SS,@FS,@GS <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :Intel&nbsp;&nbsp; CPU段寄存器. <br>@ST0,@ST1,@ST2,@ST3,@ST4,@ST5,@ST6,@ST7 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :Intel&nbsp;&nbsp; CPU浮点寄存器. <br>&nbsp;&nbsp; <br>二.适时编码 <br>&nbsp;&nbsp; <br>许多时候只想对两断点间的执行时间有个大致印象,可用@CLK得出两断点间所需执行时间(包括调试器占用的时间). <br>需要输入两个@CLK观察符,第一个是@CLK,第二个是@CLK=0.第二个的目的是重新运行时将定时器清0. <br>时间以微秒为单位,大多数情况下需要格式化为毫秒:"@CLK/1000,d". <br>&nbsp;&nbsp; <br>三.在WATCH窗口中调用函数 <br>&nbsp;&nbsp; <br>大多数情况下用于执行专门编写的校验数据结构,保证数据的相关性的函数.在释放构件中,从未调用过的函数不会被链接,因此不必担心这类函数会对影响发布构件. <br>如函数没有参数,也要求使用括号"()",调用时像用普通函数一样传送参数.WATCH右边将显示函数返回值. <br>这里有些限制: <br>1.只能在一个单线程上下文中执行函数.如是多线程程序,将函数输入到WATCH窗口中检查结果后应立即从WATCH窗口清除,否则,如调试函数在第二个线程上下文中执行,会立即终止第二个线程的运行. <br>2.调试函数必须在20秒内执行.如执行过程中出现异常,程序会在调试器中中止. <br>3.(常识)只对数据验证进行内存读取,如有问题,调用OutputDebugString类的函数.如更改内存或调用API函数----尽管这是可能的,但无法预知可能会发生什么. <br>只要在WATCH窗口中重新计算表达式,已输入WATCH窗口的调试函数就会执行: <br>.程序处于运行状态并触发某一断点时. <br>.单步调试某一代码行或某一指令时. <br>.在WATCH窗口左边编辑完成调试函数的文本并按下回车时. <br>.在运行程序时出现异常情况,并让你返回调试器中时. <br>使用调试函数的建议:输入调试函数并查看值后,立即从WATCH窗口清除;只为最关键的数据结构编写调试函数;不要更改个别结构的转储内像. <br>&nbsp;&nbsp; <br>四.自动扩展自己的类型 <br>&nbsp;&nbsp; <br>常见的自动扩展是RECT,输入RECT型的变量后直接显示其中的某些数据成员的值. <br>自定义类型扩展时,只需将自己的类型入口加入&lt;VS&nbsp;&nbsp; Common&gt;\MSDev98\Bin目录的AUTOEXP.DAT文件中. <br>例: <br>扩展CreateProcess()所用到的PROCESS_INFORMATION结构 <br>1.检查调试器将该类型识别为什么.将PROCESS_INFORMATION变量输入WATCH窗口,右击变量,选择Properties,在这里它被标注为_PROCESS_INFORMATION类型. <br>2.打开AUTOEXP.DAT文本文件,加入扩展入口.语法如下: <br>Type=[text]&lt;member[format]&gt; <br>本例中要查看hProcess和hThread值,故输入: <br>_PROCESS_INFORMATION=hProcess=&lt;hProcess,X&gt;&nbsp;&nbsp; hThread=&lt;hThread,X&gt; <br>其中X表示以16进制查看.有个特殊的格式化符&lt;,t&gt;,用于通知调试器输入最易派生类型的类型名.如B派生至A,只有B有自动扩展规则,则B的自动扩展将会是后面跟随着类A的自动扩展规则的类型名B. <br>&nbsp;&nbsp; <br>五.Set&nbsp;&nbsp; Next&nbsp;&nbsp; Statement命令 <br>&nbsp;&nbsp; <br>可以在调试时从菜单运行,但也可在WATCH窗口中直接设置EIP寄存器----小心,可能很容易摧毁程序.在最优化的释放构件中,最安全的方法是在Disassembly窗口中使用该命令.如代码在堆栈上创建了临时变量,更要多加小心. <br>最 常用的情况是:在出问题的函数前设置一个断点,检查进入的参数,单步调试整个函数;如问题不是重复的,使用Set&nbsp;&nbsp; Next&nbsp;&nbsp; Statement设置返回到断点的执行点,并更改参数.这样可在一个调试会话中测试多个假设,节省测试时间,但它不能用于所有场合,因为函数执行会破坏 其状态. <br>另一个常用地点是测试时填充数据结构,如表和数组,可用它输入额外的数据并查看代码如何处理--当某些数据条件难于复制时更为方便.</p>
<p>转载自：</p>
<p><a href="http://hi.baidu.com/yacper/blog/item/d4ace923495df35a9822edd8.html"><font color=#64a038>http://hi.baidu.com/yacper/blog/item/d4ace923495df35a9822edd8.html</font></a></p>
<img src ="http://www.cppblog.com/wc250en007/aggbug/115874.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2010-05-20 10:00 <a href="http://www.cppblog.com/wc250en007/articles/115874.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>