<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>快乐小胖兔的一窟</title><link>http://blog.vckbase.com/zyq654321/</link><description>用自己的方式过一生 --- zyq654321</description><managingEditor>快乐小胖兔的一窟</managingEditor><dc:language>zh-CN</dc:language><generator>.Text Version 0.958.2004.214</generator><item><dc:creator>快乐小胖兔的一窟</dc:creator><title>Debug版本下使用_tcscpy_s时的小贴士</title><link>http://blog.vckbase.com/zyq654321/archive/2006/05/16/20114.html</link><pubDate>Tue, 16 May 2006 10:06:00 GMT</pubDate><guid>http://blog.vckbase.com/zyq654321/archive/2006/05/16/20114.html</guid><wfw:comment>http://blog.vckbase.com/zyq654321/comments/20114.html</wfw:comment><comments>http://blog.vckbase.com/zyq654321/archive/2006/05/16/20114.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.vckbase.com/zyq654321/comments/commentRss/20114.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/zyq654321/services/trackbacks/20114.html</trackback:ping><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;很多程序员在用了&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;VC2005&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;后都发现，微软对字符串的安全操作做了不少努力，比如使用了新的安全的字符串操作函数，对字符串的超界问题做出检测。在这里并不对这种机制做出评价（这要广大程序员自己体会），也不是详细得说如何使用安全函数的问题。在这里，以实际使用中碰到的一个小&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;BUG&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;为例，让大家养成一个好的习惯&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;---&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;看文档。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;VC2005&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;中的一段程序&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"&gt;TCHAR strFrom[MAX_PATH];&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ZeryMemory(strFrom, sizeof(strFrom));&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"&gt;_tcscpy_s(strFrom,MAX_PATH, _T("D:\\TEST\\"));&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SHFILEOPSTRUCT fileStruct;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"&gt;fileStruct.wFunc = FO_DELETE;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;fileStruct.pFrom = strFrom;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 新宋体; mso-font-kerning: 0pt; mso-fareast-font-family: 新宋体"&gt;&amp;#8230;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;SHFileOperation(&amp;amp;fileStruct);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"&gt;这是一个调用&lt;SPAN lang=EN-US&gt;SHELL&lt;/SPAN&gt;的文件操作对&lt;SPAN lang=EN-US&gt;TEST&lt;/SPAN&gt;目录进行删除的操作，看上去应该是工作正常的。实际上，如果是&lt;SPAN lang=EN-US&gt;release&lt;/SPAN&gt;版本，也不会有什么问题。然而，一般程序员写完后，先编译的都是&lt;SPAN lang=EN-US&gt;Debug&lt;/SPAN&gt;版，这样问题就来了，这段程序怎么运行都不正常，如果是初学者或是不爱看文档的人估计就要花时间去查了。&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"&gt;开始我也觉得奇怪，写法应该是没错了。于是去看&lt;SPAN lang=EN-US&gt;SHFILEOPSTRUCT&lt;/SPAN&gt;结构的说明，有一点引起我的注意：&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;An additional NULL character must be appended to the end of the final name to indicate the end of &lt;B&gt;pFrom&lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;。意思是说缓冲区中应该有附加的&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;NULL&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;，但上面的程序应该不会是这个问题啊，因为&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;ZeryMemory&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;已经为缓冲区全部置&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;0&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;了。实际上，这是&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;_tcscpy_s&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;的问题。（又是文档）&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;_tcscpy_s&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;会在&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;Debug&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;版本中在缓冲区中填上&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;0xFD&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;。呵呵，这样就查出为什么会出问题的了。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;题外话，即然说到&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;0xFD&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;被填进了缓冲区，就多说一些。大家都知道编译选项&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;/GZ&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;（非优化编译版本才可使用）被使用后，变量和内存区在初始化时会被填入一些值，比如用&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;0xCC&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;初始化自动变量，用&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;0xFD&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;初始化被保护的内存，其作用中便于进行错误的查找。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"&gt;注：在&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: Verdana; mso-font-kerning: 1.0pt; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"&gt;VC2005&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"&gt;中，&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: Verdana; mso-font-kerning: 1.0pt; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"&gt;/GZ&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"&gt;选项已经不再使用（确切说是不建议使用），取而代之的是&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: Verdana; mso-font-kerning: 1.0pt; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"&gt;/RTC&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"&gt;（运行期错误检查）。&lt;/SPAN&gt;&lt;/FONT&gt;&lt;img src ="http://blog.vckbase.com/zyq654321/aggbug/20114.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>快乐小胖兔的一窟</dc:creator><title>YOK,你是助手还是流氓！</title><link>http://blog.vckbase.com/zyq654321/archive/2006/05/12/20030.html</link><pubDate>Fri, 12 May 2006 08:27:00 GMT</pubDate><guid>http://blog.vckbase.com/zyq654321/archive/2006/05/12/20030.html</guid><wfw:comment>http://blog.vckbase.com/zyq654321/comments/20030.html</wfw:comment><comments>http://blog.vckbase.com/zyq654321/archive/2006/05/12/20030.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://blog.vckbase.com/zyq654321/comments/commentRss/20030.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/zyq654321/services/trackbacks/20030.html</trackback:ping><description>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;昨天晚上被夫人命令到一个朋友家去给看电脑，说是上网非常慢，还乱跳网页。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;想想自己很少给人干这种IT的活，想推掉，不过这个念头是不能有的。结了婚的男人要以夫人为大啊，哈哈！吃完饭就出门了。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;到了朋友家，开机，上网，咚，自动跳出些网页，奇虎社区什么的好几个。虽然偶不是搞安全和病毒的，但一看就知道，应该是流氓软件在做怪。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;来的匆忙，没带什么东西（哈哈，其实也真没什么东西，我用的电脑是全是公司给装的安全软件，从没被这些问题困扰）。打开进程管理器，没有发现什么名称不正常的进程。在看注册表RUN子键下，发现有个YOK_SuperSearch.dll的启动项。呵呵，看名子就不是好东西。于是Delete干掉它。然后在硬盘上查相应文件，Delete它，倒。不行！&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;于是再回注册表，按下F5刷新，发现这个项又被自动加上了。不&amp;nbsp;&amp;nbsp;&amp;nbsp;说，有守护进程。怎么查它呢，电脑上什么都没有；就上网找个工具吧，regmonitor常用，还是不错的。下下来后，果然可以定位到explore.exe会对注册表的一些项进行查询，如果没有就会添加。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;想想，网上应该可以下到清它的软件。不过，应该不用这么麻烦。关键的是，做软件工程师不是一年两年了，一般是不会都网上下些程序来跑的（刚才的那个工具也是在自已的网上硬盘中下的）。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;最简单的方法也是最快的，在那种情况应该是。我又下了个自己写的小小debugger，把它挂上explore.exe进程，然后挂起它。这样再去delete注册表。嘿嘿，然后用力按住电脑的POWER键，至少五秒（强行关机）。机器重起后，再delete掉相应文件就行了。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;唉，你说现在的软件，真是与时俱进啊，都出流氓了！&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;今天早晨，我上网看了看，发现YOK还被冠以&amp;#8220;助手&amp;#8221;等美名。真是有点那个了。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;这些日子，偶也在看知识产权方面的书，现在就以相关知识对它评论一下。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;先说个例子，老的程序员都应该知道江民公司的&amp;#8220;逻辑锁&amp;#8221;这件事。大致内容就是江民公司为了防盗版，采用了对使用了盗版江民公司杀毒软件的计算机实施&amp;#8220;锁住硬盘&amp;#8221;的操作。这明显是一种&amp;#8220;防卫过当&amp;#8221;。它符合我国《中华人民共和国计算机住处系统安全保护条例》中第23条中&amp;#8220;有害数据&amp;#8221;和&amp;#8220;影响计算机系统正常运行&amp;#8221;的行为，因此是违法的。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;而现在的YOK这些流氓软件，显然是在打法规的擦边球。虽然它们有的是不请自到，或是赖着不走，但好象与上面两条还有点&amp;#8220;差距&amp;#8221;，不算违法（事实上YOK已经影响了IE的运行效率，并干扰了用户！）。不过，流氓就是流氓，我想它们与社会上的那些小痞子一样，要不改邪归正，走下去必会等到法律的惩罚！&lt;img src ="http://blog.vckbase.com/zyq654321/aggbug/20030.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Hercules Space</dc:creator><title>CPUID被禁止取序列号之后</title><link>http://blog.vckbase.com/zyq654321/archive/2006/05/10/19980.html</link><pubDate>Wed, 10 May 2006 04:50:00 GMT</pubDate><guid>http://blog.vckbase.com/zyq654321/archive/2006/05/10/19980.html</guid><wfw:comment>http://blog.vckbase.com/zyq654321/comments/19980.html</wfw:comment><comments>http://blog.vckbase.com/zyq654321/archive/2006/05/10/19980.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.vckbase.com/zyq654321/comments/commentRss/19980.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/zyq654321/services/trackbacks/19980.html</trackback:ping><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;今天在写工作文档时，有网上好友问我关于&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;CPUID&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;被禁止取序列号后该怎么办？于是立即由&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;single-core&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;变为&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;duo-core&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，呵呵，大脑不用升级就可自动完成，且无新成本发生。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;网上其实也说到了禁止取序列号的代码：应该是下面这几句：&lt;/SPAN&gt;&lt;/P&gt;
&lt;H6 style="MARGIN: 2pt 0cm 0pt 14.15pt; VERTICAL-ALIGN: baseline; TEXT-INDENT: 8.85pt; mso-char-indent-count: .98; mso-para-margin-top: 2.0pt; mso-para-margin-right: 0cm; mso-para-margin-bottom: .0001pt; mso-para-margin-left: 1.35gd"&gt;&lt;A name=pgfId-995630&gt;&lt;/A&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;MOV ECX, 119H &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/H6&gt;
&lt;H6 style="MARGIN: 2pt 0cm 0pt 14.15pt; VERTICAL-ALIGN: baseline; TEXT-INDENT: 8.85pt; mso-char-indent-count: .98; mso-para-margin-top: 2.0pt; mso-para-margin-right: 0cm; mso-para-margin-bottom: .0001pt; mso-para-margin-left: 1.35gd"&gt;&lt;A name=pgfId-995631&gt;&lt;/A&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;RDMSR &lt;A name=pgfId-995632&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/H6&gt;
&lt;H6 style="MARGIN: 2pt 0cm 0pt 14.15pt; VERTICAL-ALIGN: baseline; TEXT-INDENT: 8.85pt; mso-char-indent-count: .98; mso-para-margin-top: 2.0pt; mso-para-margin-right: 0cm; mso-para-margin-bottom: .0001pt; mso-para-margin-left: 1.35gd"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;OR EAX, 0020 0000H &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/H6&gt;
&lt;H6 style="MARGIN: 2pt 0cm 0pt 14.15pt; VERTICAL-ALIGN: baseline; TEXT-INDENT: 8.85pt; mso-char-indent-count: .98; mso-para-margin-top: 2.0pt; mso-para-margin-right: 0cm; mso-para-margin-bottom: .0001pt; mso-para-margin-left: 1.35gd"&gt;&lt;A name=pgfId-995633&gt;&lt;/A&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;WRMSR &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/H6&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;我简单说明这几句，第二和第四分别是读写&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MSR&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;寄存器的指令，第一句则表明了要访问的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MSR&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的地址。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;119H&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;对应该的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MSR&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;寄存器叫做&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;BBL_CR_CTL MSR&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;寄存器；第三句则是对第&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;21&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;位置&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;1&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;。在&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;BBL_CR_CTL&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;bit21&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;被置以后，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;processor number&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;这一功能会被禁止，直至系统&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;reset&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;。要说明的是此&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;bit21&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;是&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;write-once&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;属性的，即仅可以在&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;reset&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;后被写入一次，这是在硬件上就做好的，所以一旦此位被修改，再写就不可能了。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;对一些软件为什么要去置此位就不说了，大多也是安全或加密什么的。但是至少有一点，用户也许要使用&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;processor number&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，这样就无法去读取了。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;最简单的方法是不让修改此位的软件运行，更简单说就是检查一下当前正在运行的程序，看其执行文件中是否包含了相应代码的机器码，当然了，如果必要还要检查其加载的模块。下面是相应的机器码（注意，此代码不一定与&amp;#8220;干这事的那个人&amp;#8221;的代码完全相符。）：&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;STRONG&gt;B9 19 01 00 00&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;mov&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ecx,119h &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;STRONG&gt;0F 32&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;rdmsr&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;STRONG&gt;0D 00 00 20 00&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;or&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;eax,200000h &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;STRONG&gt;0F 30&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;wrmsr&lt;/STRONG&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/zyq654321/aggbug/19980.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Hercules Space</dc:creator><title>解释[周星星]提到的，关于this值不同的问题。</title><link>http://blog.vckbase.com/zyq654321/archive/2006/03/20/18608.html</link><pubDate>Mon, 20 Mar 2006 07:04:00 GMT</pubDate><guid>http://blog.vckbase.com/zyq654321/archive/2006/03/20/18608.html</guid><wfw:comment>http://blog.vckbase.com/zyq654321/comments/18608.html</wfw:comment><comments>http://blog.vckbase.com/zyq654321/archive/2006/03/20/18608.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blog.vckbase.com/zyq654321/comments/commentRss/18608.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/zyq654321/services/trackbacks/18608.html</trackback:ping><description>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;呵呵，最近都很忙，BLOG也没空写，今天在VCKBASE转了一下，手又有点痒，就少写一点吧：&lt;BR&gt;问题的链接见：&lt;A href="http://blog.vckbase.com/bruceteen/archive/2006/03/20/18606.html"&gt;http://blog.vckbase.com/bruceteen/archive/2006/03/20/18606.html&lt;/A&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;其实解释这个问题很简单，VC中显示的没错，星星的想法看上去也没错，但是，请大家注意这个问题，继承或多重继承中常用到的虚函数问题。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;我想说的是，不少人可能都很精通虚函数，也用过不少，但是可能有人会不太注意virtual table，也就是虚表这个问题。如果精通COM的话，这应该可以比较容易理解，因为COM主要就利用这一类虚表。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;星星的代码中的类C从类B和类A中派生出来，同时在类C中重用了类B中的虚函数fb。这里有一个重要概念，此fb函数不权是类C的成员函数，它更是在类C是类B虚表的函数。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;这样就可以演示一下实际情况了，当从C类产生一个新的对象c时，系统同时为c对象生成相应的类B和类C的&amp;#8220;实例&amp;#8221;（这里的实例指它们的成员和虚表等）。而this的含义并不是完全指c这个对象，它是一个&amp;#8220;相对&amp;#8221;的意思，这里在多重继承时就让不少人感到了岐义。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;一个小技巧可以理解它，就是改代码为class C: public B, C,这样，类B的虚表就排在了第一个，如此地址就一样了。呵呵，语言表达不是太好，不过基本意思应该到了。&lt;BR&gt;&lt;img src ="http://blog.vckbase.com/zyq654321/aggbug/18608.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>快乐小胖兔</dc:creator><title>MSBuild: 如何区别属性的两种状态，"定义但值为空"与"未定义"</title><link>http://blog.vckbase.com/zyq654321/archive/2005/08/24/11409.html</link><pubDate>Wed, 24 Aug 2005 05:17:00 GMT</pubDate><guid>http://blog.vckbase.com/zyq654321/archive/2005/08/24/11409.html</guid><wfw:comment>http://blog.vckbase.com/zyq654321/comments/11409.html</wfw:comment><comments>http://blog.vckbase.com/zyq654321/archive/2005/08/24/11409.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://blog.vckbase.com/zyq654321/comments/commentRss/11409.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/zyq654321/services/trackbacks/11409.html</trackback:ping><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;MSBuild2.0&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;对这两种状态是无法区别的（&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;MSBuild&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;都认为这个&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;Property&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;存在且值为空），这是偶与&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;MSBuild&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的开发人员之一&lt;/SPAN&gt;&lt;SPAN class=inlinelink1&gt;&lt;B&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;&lt;FONT color=#555555&gt;Dan Moseley&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;交流后得到的。据称在后面的版本中将会对此作出改进。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;但是目前&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;MS&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;使用的是下面的方法（&lt;/SPAN&gt;&lt;FONT color=#555555&gt;&lt;SPAN class=inlinelink1&gt;&lt;B&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;Dan Moseley&lt;/SPAN&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN class=inlinelink1&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-weight: bold"&gt;提出的&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;）：为每个须判断的&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;Property&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;各加一个新的&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;Property&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;作其相应的状态变量。听上去感觉不错，这确实算一种通用的方法。但是想想，如果此&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;Property&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;数量是几十或都上百，那&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;DOUBLE&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;一下可不是闹着玩的。一个&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;Property&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;用二个&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;Property&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;来控制，代码的复杂度不得不增加不少，而这些并不是必须的。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;我的解决方法是，仍用一个变量，但如何区别呢？只须加一个初始文件，为每个&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;Property&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;先设上&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;UNDEINFED&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;或类似的值，这样当后面用时即可简单区分开来。例子：&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt"&gt;&lt;FONT size=2&gt;Init.Targets&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;&lt;FONT size=2&gt;&amp;lt;Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"&amp;gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;PropertyGroup&amp;gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;MY1&amp;gt;UNDEFINE&amp;lt;/ MY1&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;&lt;FONT size=2&gt;&amp;lt;MY2&amp;gt;UNDEFINE&amp;lt;/ MY2&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;&lt;FONT size=2&gt;&amp;lt;MY3&amp;gt;UNDEFINE&amp;lt;/ MY3&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;&lt;FONT size=2&gt;&amp;lt;MY4&amp;gt;UNDEFINE&amp;lt;/ MY4&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/PropertyGroup&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;&lt;FONT size=2&gt;&amp;lt;/Project&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;在所须的项目文件一开始加入&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;&amp;lt;Import Project="Init.Targets"/&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;即可。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;这样&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;Condtion=&amp;#8221;$(MY1)==&amp;#8217;UNDEFINED&amp;#8217;&amp;#8221;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;和&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;Condtion=&amp;#8221;$(MY1)==&amp;#8217;&amp;#8217;&amp;#8221;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;就可以区别&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;Property&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的两种状态了。&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/zyq654321/aggbug/11409.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>HERCULES BLOG</dc:creator><title>MSbuild: 设置环境变量</title><link>http://blog.vckbase.com/zyq654321/archive/2005/08/24/11407.html</link><pubDate>Wed, 24 Aug 2005 04:53:00 GMT</pubDate><guid>http://blog.vckbase.com/zyq654321/archive/2005/08/24/11407.html</guid><wfw:comment>http://blog.vckbase.com/zyq654321/comments/11407.html</wfw:comment><comments>http://blog.vckbase.com/zyq654321/archive/2005/08/24/11407.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.vckbase.com/zyq654321/comments/commentRss/11407.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/zyq654321/services/trackbacks/11407.html</trackback:ping><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-line-height-alt: 0pt"&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;MSBuild&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt"&gt;提供了很方便的方法来读取环境变量。它的策略是当执行&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;MSBuild&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt"&gt;任务时，将当前的环境变量直接转化&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;MSBuild&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt"&gt;中的属性（&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;Property&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt"&gt;），这样在&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;MSBuild&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt"&gt;文件脚本中使用&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;$()&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt"&gt;来对环境变量直接引用。但这无法解决这个问题：自定义的&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;Target&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt"&gt;中的一些程序要读取环境变量。下面用两种方法两解决这个问题：&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-line-height-alt: 0pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt"&gt;解决方法一般是，写一个新的&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;Task&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt"&gt;用来设定环境变量。程序用&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;C#&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt"&gt;来实现，代码异常简单。如下：&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-line-height-alt: 0pt; mso-pagination: widow-orphan" align=left&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;&lt;FONT size=2&gt;using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt; System;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;using&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt; System.Collections.Generic;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;using&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt; System.Text;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-line-height-alt: 0pt; mso-pagination: widow-orphan" align=left&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;&lt;FONT size=2&gt;using&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt; Microsoft.Build.Utilities; &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;using&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt; Microsoft.Build.Framework;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-line-height-alt: 0pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;&lt;FONT size=2&gt;namespace&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt; MYTools&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;public&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;class&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt; SetEnvVar : Task&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;private&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;string&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt; _strEnVarName;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;private&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;string&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt; _strEnVarValue;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-line-height-alt: 0pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;public&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;string&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt; EnvVarName&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { &lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;return&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;&lt;FONT size=2&gt; _strEnVarName; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set { _strEnVarName = value; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-line-height-alt: 0pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;public&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;string&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt; EnvVarValue&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { &lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;return&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt; _strEnVarValue; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set { _strEnVarValue = value; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;public&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;override&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;bool&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt; Execute()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Environment.SetEnvironmentVariable(_strEnVarName, _strEnVarValue);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;return&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;true&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;}&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Lucida Console'; mso-hansi-font-family: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;在开始加上：&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-size: 10.5pt"&gt;&lt;FONT color=#000080 size=2&gt;&amp;lt;UsingTask TaskName="SetEnvVar" &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;AssemblyFile="XXX\MyTools.dll"/&amp;gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt"&gt;在&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;Target&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt"&gt;里就可以这样用了：&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;FONT size=2&gt;&lt;FONT color=#000080&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-size: 10.5pt"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt; SetEnvVar &lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-size: 10.5pt"&gt;EnvVarName="PATH" EnvVarValue="$(PATH)"/&amp;gt;&lt;BR&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; TEXT-ALIGN: left; mso-line-height-alt: 0pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Lucida Console'; mso-hansi-font-family: 'Lucida Console'; mso-bidi-font-size: 10.5pt"&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;方法二来的更为简单一些，它不须写个&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-size: 10.5pt"&gt;Task&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Lucida Console'; mso-hansi-font-family: 'Lucida Console'; mso-bidi-font-size: 10.5pt"&gt;。但是它的范围限于控制台程序，它的出发点是，先设好环境变量，再调用相应的&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-size: 10.5pt"&gt;Target&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Lucida Console'; mso-hansi-font-family: 'Lucida Console'; mso-bidi-font-size: 10.5pt"&gt;，脚本如下：&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-size: 10.5pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-line-height-alt: 0pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;PropertyGroup&amp;gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-line-height-alt: 0pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;EnvSet&amp;gt;$(EnvSet)PATH=$(PATH);C:\Windows\System32\;&amp;amp;amp;&amp;amp;amp;&amp;lt;/EnvSet&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-line-height-alt: 0pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;EnvSet&amp;gt;$(EnvSet)SET VAR1=C:&amp;amp;amp;&amp;amp;amp;&amp;lt;/EnvSet&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-line-height-alt: 0pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;EnvSet&amp;gt;$(EnvSet)SET VAR2=D:&amp;amp;amp;&amp;amp;amp;&amp;lt;/EnvSet&amp;gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-line-height-alt: 0pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/PropertyGroup&amp;gt; &lt;SPAN style="mso-tab-count: 1"&gt;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-line-height-alt: 0pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;Target Name="PreSetEnvVar"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-line-height-alt: 0pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;Exec Command="$(EnvSet)&amp;amp;amp;&amp;amp;amp;MSBuild MyProject.Proj /t:TargetNeedEnvVar" /&amp;gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; TEXT-ALIGN: left; mso-line-height-alt: 0pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;&lt;FONT size=2&gt;&amp;lt;/Target&amp;gt;&lt;BR&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; TEXT-ALIGN: left; mso-line-height-alt: 0pt; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align=left&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Lucida Console'; mso-hansi-font-family: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;比较而言，方法&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;2&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Lucida Console'; mso-hansi-font-family: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;简单，但应该场合受限制；方法&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;1&lt;/SPAN&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Lucida Console'; mso-hansi-font-family: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;则是通用方法，但要加一个新的&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"&gt;Task&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/zyq654321/aggbug/11407.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>HERCULES BLOG</dc:creator><title>生日流水帐</title><link>http://blog.vckbase.com/zyq654321/archive/2005/08/08/10631.html</link><pubDate>Mon, 08 Aug 2005 02:51:00 GMT</pubDate><guid>http://blog.vckbase.com/zyq654321/archive/2005/08/08/10631.html</guid><wfw:comment>http://blog.vckbase.com/zyq654321/comments/10631.html</wfw:comment><comments>http://blog.vckbase.com/zyq654321/archive/2005/08/08/10631.html#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://blog.vckbase.com/zyq654321/comments/commentRss/10631.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/zyq654321/services/trackbacks/10631.html</trackback:ping><description>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 又过生日了!鬼混至今，什么也没做成，汗!偶的生日好记,大家想着当偶过生日时,天气就会转凉了,就记住了!今天下大雨，天气果然很凉。不过声明一下，台风可不是偶带来滴！&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 上午7:00就起床了,一直看书到11:00点,感觉挺爽!啊，你问看的什么书？NO，NO，当然不是小说了。《####》，酷吧！我也觉得是，也许我当老师就挺好的，偶感觉偶知道的真多！哦，你说小心腰！还好，偶经常活动，说大话不怕闪了腰^_^。而且偶较爱看拳击,特别是现在看的韩巧声解说的，才不怕闪了腰呢。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 一整天都在下雨天,下午陪LP逛了逛超市,提着30多斤的东西回家了.LP奖励偶,在肯得基买了偶最爱吃的蛋塔...立马回家放进冰箱冻着吃。前几天就向LP声明，我绝对不过生日，于是这几个蛋塔就权当生日蛋糕吧！&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 17：00了，双休日是要锻炼的。来几组俯卧撑，再举几组哑铃，然后掰几组二头肌...，偶只有一个哑铃，但是挺重，足足有52磅。用它偶最爱的动作是单手侧举，今天也来了它6组。心头一个感觉，太轻，不爽！下周去举杠铃去。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;练完擦干汗，与LP合影数张，张张显出肥肉。于是对LP说，&amp;#8220;如果有人说偶这是&amp;#8216;五花肉&amp;#8217;，偶就请它吃饭！&amp;#8221;。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 当晚上网，遇一LP同事，于是发了张请他评价，回日：&amp;#8220;下网后一定去擦哑铃！&amp;#8221;，接着又回&amp;#8220;肩上的肌肉叫什么&amp;#8221;。偶答：&amp;#8220;三角肌&amp;#8221;，后又答：&amp;#8220;下次有空吃饭！&amp;#8221;。然后满意下网。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 看了看时间，才8：00，又看了一会书。然后陪LP看电视，不知不觉就调到了偶最爱看的类型---史泰龙的《特警判官》，下决心，看完它！于是看完它，时间已是11：30了,LP已经进入梦乡，不过偶还是看会书再睡吧...&lt;img src ="http://blog.vckbase.com/zyq654321/aggbug/10631.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>HERCULES BLOG</dc:creator><title>写个自己的调试器</title><link>http://blog.vckbase.com/zyq654321/archive/2005/07/02/9082.html</link><pubDate>Sat, 02 Jul 2005 11:26:00 GMT</pubDate><guid>http://blog.vckbase.com/zyq654321/archive/2005/07/02/9082.html</guid><wfw:comment>http://blog.vckbase.com/zyq654321/comments/9082.html</wfw:comment><comments>http://blog.vckbase.com/zyq654321/archive/2005/07/02/9082.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blog.vckbase.com/zyq654321/comments/commentRss/9082.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/zyq654321/services/trackbacks/9082.html</trackback:ping><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align=center&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;写个自己的调试器&lt;BR&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;对于写了一段时间的程序员来说，了解一些&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;debugger&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;的实质无疑对于技术的提高是有很大帮助的。而&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;debugging&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;自身也是一门非常细节化，比较复杂的技术。好的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Debug&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;工具如&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;SoftICE&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;，也是技术稍深一些的程序员必备的技术之一。这篇随笔并不会去讨论&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Debug&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;技术的实质，而只是利用&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Platform SDK&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;和最新的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;DbgHelp.dll&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;提供的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;API&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;作为引擎写一个自己的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;debugger&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;，也即是写一个实用的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;debugger&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Host&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;端。呵呵，本人不擅于写文章，所以下面就指一个例子来说，即如何给一个进程设下断点并捕获。其实看过&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;IA32&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;的人都知道，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;CPU&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;为&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Debug&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;提供了强力的支持，比如设单步跟踪的标志；再比如&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;BIOS&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;代码的调试，对于&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;ROM&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;BIOS&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;代码是无法进行插&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;CC&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;int 3&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;）指令进行断点设置的，这时&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;CPU&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;提供了地址中断，执行至指定地址时，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;CPU&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;自行中断。在这里并不会提及这些内容，当然也许有时间，或大家感兴趣，我可以写点或讨论一二。下面单就如何给进行设断点来说说，即然是随笔，所以可能会有错别字，欢迎大家来找别字&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; ^_^&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;，&lt;/SPAN&gt; &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;调试目标程序时，你得有相应的权限。用下面这个函数得到它：&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;//--------------------------------------------------------------------------&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;// EnableDebugAccessCtl&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;// Description: Enable or disable debug access control&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;// Return value: 0 means succeed&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;DWORD EnableDebugAccessCtl(BOOL bEnable) &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;HANDLE hTokenHandle = NULL;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt;( !OpenProcessToken(GetCurrentProcess(), &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;TOKEN_ADJUST_PRIVILEGES, &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 7"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;amp;hTokenHandle ) )&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;return GetLastError();&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// Lookup the privilege value &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;TOKEN_PRIVILEGES tp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;tp.PrivilegeCount = 1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt;( !LookupPrivilegeValue( NULL, SE_DEBUG_NAME, &amp;amp;tp.Privileges[0].Luid ) )&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;CloseHandle(hTokenHandle);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; -1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// Enable/disable the privilege&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;tp.Privileges[0].Attributes = bEnable ? SE_PRIVILEGE_ENABLED : 0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt;( !AdjustTokenPrivileges( hTokenHandle, FALSE, &amp;amp;tp, &lt;SPAN style="COLOR: blue"&gt;sizeof&lt;/SPAN&gt;(tp), NULL, NULL ) )&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;CloseHandle(hTokenHandle);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; -1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;CloseHandle(hTokenHandle);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; 0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;我们可以&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;attach&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;一个正在运行的进行或重新启动一个进程进行调试。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;DebugActiveProcess&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;可以实现第一种情况；第二种情况可以用&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;CreateProcess&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;，下面是代码，注意创建标志。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;// Create Process&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;STARTUPINFO si;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;PROCESS_INFORMATION pi;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ZeroMemory( &amp;amp;si, &lt;SPAN style="COLOR: blue"&gt;sizeof&lt;/SPAN&gt;(si) );&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;si.cb = &lt;SPAN style="COLOR: blue"&gt;sizeof&lt;/SPAN&gt;(si);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ZeroMemory( &amp;amp;pi, &lt;SPAN style="COLOR: blue"&gt;sizeof&lt;/SPAN&gt;(pi) );&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt;( !CreateProcess(NULL, csCmdParms.GetBuffer(), &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 5"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;NULL, NULL, FALSE, &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;CREATE_NEW_CONSOLE | DEBUG_ONLY_THIS_PROCESS, &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 5"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;NULL, NULL, &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 5"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&amp;amp;si, &amp;amp;pi ) )&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; GetLastError();&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;这下初调试的程序就跑起来了，接下来一般来用一个循环来获取目标进行的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Debug&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;事件。主循环看起来应该是这样的，嘿，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MSDN&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;给了你一个模板，那就用吧：&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;&lt;FONT color=#660000&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;DEBUG_EVENT DebugEv;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// debugging event information &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN lang=FR style="FONT-SIZE: 8.5pt; mso-ansi-language: FR"&gt;DWORD dwContinueStatus = DBG_CONTINUE; // exception continuation&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;for(;;) &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;{&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;// Wait for a debugging event to occur. The second parameter indicates &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;// that the function does not return until a debugging event occurs.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;WaitForDebugEvent(&amp;amp;DebugEv, INFINITE);&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;// Process the debugging event code.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;switch (DebugEv.dwDebugEventCode) &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="TEXT-INDENT: 17.25pt"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;{ &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE style="TEXT-INDENT: 17.25pt"&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;case EXCEPTION_DEBUG_EVENT: &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;// Process the exception code. When handling &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// exceptions, remember to set the continuation &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// status parameter (dwContinueStatus). This value &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// is used by the ContinueDebugEvent function.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;switch (DebugEv.u.Exception.ExceptionRecord.ExceptionCode) &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;{ &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;case EXCEPTION_ACCESS_VIOLATION: &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// First chance: Pass this on to the system. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// Last chance: Display an appropriate error. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;break; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;case EXCEPTION_BREAKPOINT: &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// First chance: Display the current &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// instruction and register values. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;break; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;case EXCEPTION_DATATYPE_MISALIGNMENT: &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// First chance: Pass this on to the system. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// Last chance: Display an appropriate error. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;break; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;case EXCEPTION_SINGLE_STEP: &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// First chance: Update the display of the &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// current instruction and register values. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;break; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;case DBG_CONTROL_C: &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// First chance: Pass this on to the system. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// Last chance: Display an appropriate error. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;break; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;default;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Handle other exceptions. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;break;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;case CREATE_THREAD_DEBUG_EVENT: &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// As needed, examine or change the thread's registers &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// with the GetThreadContext and SetThreadContext functions; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// and suspend and resume thread execution with the &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// SuspendThread and ResumeThread functions. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;break;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;case CREATE_PROCESS_DEBUG_EVENT: &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// As needed, examine or change the registers of the &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// process's initial thread with the GetThreadContext and &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// SetThreadContext functions; read from and write to the &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// process's virtual memory with the ReadProcessMemory and &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// WriteProcessMemory functions; and suspend and resume &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// thread execution with the SuspendThread and ResumeThread &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// functions. Be sure to close the handle to the process image &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// file with CloseHandle.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;break; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;case EXIT_THREAD_DEBUG_EVENT: &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// Display the thread's exit code. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;break; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;case EXIT_PROCESS_DEBUG_EVENT: &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// Display the process's exit code. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;break; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;case LOAD_DLL_DEBUG_EVENT: &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// Read the debugging information included in the newly &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// loaded DLL. Be sure to close the handle to the loaded DLL &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// with CloseHandle.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;break; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;case UNLOAD_DLL_DEBUG_EVENT: &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// Display a message that the DLL has been unloaded. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;break; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;case OUTPUT_DEBUG_STRING_EVENT: &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;// Display the output debugging string. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;break; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;} &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;// Resume executing the thread that reported the debugging event.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 8.5pt"&gt;&lt;FONT color=#660000&gt;ContinueDebugEvent(DebugEv.dwProcessId, DebugEv.dwThreadId, dwContinueStatus); &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT color=#660000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;}&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;可以从&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;CASE&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;语句中看到可以获取什么样的事件。注意&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"&gt;CREATE_PROCESS_DEBUG_EVENT&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;事件，我们设置断点是在这里，也就是进行被创建的时候。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;说到这里就要讲讲断点是怎么设置的了。通常我们设置的断点称为软件断点。通俗点说这个断点其实并不是在原代码中写的，它的基本工作是：调试器跟据用户的设置对代码进行了修改，也即是在指地址处更换一个字节的值为&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;CC&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;，当程序运行到用户指定地址时，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;CC&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;被处理器装入执行，因为&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;CC&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;对应用&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;int 3&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'"&gt;指令，这是处理器的一个断点异常，于是处理暂停