﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-风神-随笔分类-程序点滴</title><link>http://www.cppblog.com/kylinxh/category/7228.html</link><description>悟空。。。。。。。。。</description><language>zh-cn</language><lastBuildDate>Tue, 16 Dec 2008 14:55:10 GMT</lastBuildDate><pubDate>Tue, 16 Dec 2008 14:55:10 GMT</pubDate><ttl>60</ttl><item><title>实现程序自己更新自己</title><link>http://www.cppblog.com/kylinxh/archive/2008/12/16/69591.html</link><dc:creator>风神</dc:creator><author>风神</author><pubDate>Tue, 16 Dec 2008 09:56:00 GMT</pubDate><guid>http://www.cppblog.com/kylinxh/archive/2008/12/16/69591.html</guid><wfw:comment>http://www.cppblog.com/kylinxh/comments/69591.html</wfw:comment><comments>http://www.cppblog.com/kylinxh/archive/2008/12/16/69591.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/kylinxh/comments/commentRss/69591.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kylinxh/services/trackbacks/69591.html</trackback:ping><description><![CDATA[以前做了个自动更新程序，后来把这个自动更新程序更新了，但是当时没有设计让自动更新程序来更新自己，这次就把这个功能加到里面了。在添加这个功能的时候，在网上搜了一下，已经有很多这方面的资料，我最后用了批处理来完成的。<br>设计思路：<br>1.自动更新程序检测到网上有新版本的自己时，先从网上下载新版本程序到同一个目录下，另起个名字保存。<br>2.在自动更新程序退出时，创建并运行一个批处理文件，来完成以旧换新的功能。<br><br>下面是相关的实现部分<br><br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;CAutoUpdateDlg::DeleteMyself(</span><span style="color: #0000ff;">void</span><span style="color: #000000;">)<br></span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">1.创建自己批处理文件</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;CString&nbsp;sbatName,sPath;<br></span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;sPath</span><span style="color: #000000;">=</span><span style="color: #000000;">m_strAppPath</span><span style="color: #000000;">+</span><span style="color: #000000;">m_strAppName;<br></span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;sbatName</span><span style="color: #000000;">=</span><span style="color: #000000;">m_strAppPath</span><span style="color: #000000;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">delete.bat</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;ofstream&nbsp;outfile(sbatName.GetBuffer());<br></span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(outfile)<br></span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outfile</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">:try</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">定义标记</span><span style="color: #008000;"><br></span><span style="color: #008080;">11</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outfile</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">choice&nbsp;/t&nbsp;1&nbsp;/d&nbsp;y&nbsp;&gt;nul</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">暂停1秒</span><span style="color: #008000;"><br></span><span style="color: #008080;">12</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outfile</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">del&nbsp;\</span><span style="color: #000000;">""</span><span style="color: #000000;">+sPath+</span><span style="color: #000000;">"</span><span style="color: #000000;">\</span><span style="color: #000000;">""</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">删除原程序文件</span><span style="color: #008000;"><br></span><span style="color: #008080;">13</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outfile</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">if&nbsp;exist&nbsp;\</span><span style="color: #000000;">""</span><span style="color: #000000;">+sPath+</span><span style="color: #000000;">"</span><span style="color: #000000;">\</span><span style="color: #000000;">""</span><span style="color: #000000;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;goto&nbsp;:try</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">如果删除失败，运行到标记try处，循环以上步骤</span><span style="color: #008000;"><br></span><span style="color: #008080;">14</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outfile</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">rename&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">m_strAppBakName</span><span style="color: #000000;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">m_strAppName</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">重命名新文件为程序文件</span><span style="color: #008000;"><br></span><span style="color: #008080;">15</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outfile</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">del&nbsp;\</span><span style="color: #000000;">""</span><span style="color: #000000;">+sbatName+</span><span style="color: #000000;">"</span><span style="color: #000000;">\</span><span style="color: #000000;">""</span><span style="color: #000000;">;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">删除批处理文件</span><span style="color: #008000;"><br></span><span style="color: #008080;">16</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;outfile.close();<br></span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">2.创建运行批处理的进程，它以空闲优先级创建</span><span style="color: #008000;"><br></span><span style="color: #008080;">20</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;STARTUPINFO&nbsp;si;<br></span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;PROCESS_INFORMATION&nbsp;pi;<br></span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;ZeroMemory(&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">si,&nbsp;</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(si)&nbsp;);<br></span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;si.cb&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(si);<br></span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;si.dwFlags</span><span style="color: #000000;">=</span><span style="color: #000000;">STARTF_USESHOWWINDOW;<br></span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;si.wShowWindow</span><span style="color: #000000;">=</span><span style="color: #000000;">SW_HIDE;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">以隐藏状态运行</span><span style="color: #008000;"><br></span><span style="color: #008080;">26</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;ZeroMemory(&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">pi,&nbsp;</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(pi)&nbsp;);<br></span><span style="color: #008080;">27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(&nbsp;</span><span style="color: #000000;">!</span><span style="color: #000000;">CreateProcess(&nbsp;NULL,&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;No&nbsp;module&nbsp;name&nbsp;(use&nbsp;command&nbsp;line).&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #008080;">28</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sbatName.GetBuffer(),&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Command&nbsp;line.&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #008080;">29</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Process&nbsp;handle&nbsp;not&nbsp;inheritable.&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #008080;">30</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Thread&nbsp;handle&nbsp;not&nbsp;inheritable.&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #008080;">31</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FALSE,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Set&nbsp;handle&nbsp;inheritance&nbsp;to&nbsp;FALSE.&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #008080;">32</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IDLE_PRIORITY_CLASS,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;IDLE&nbsp;flags.&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #008080;">33</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Use&nbsp;parent's&nbsp;environment&nbsp;block.&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #008080;">34</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Use&nbsp;parent's&nbsp;starting&nbsp;directory.&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #008080;">35</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">si,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Pointer&nbsp;to&nbsp;STARTUPINFO&nbsp;structure.</span><span style="color: #008000;"><br></span><span style="color: #008080;">36</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">pi&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Pointer&nbsp;to&nbsp;PROCESS_INFORMATION&nbsp;structure.</span><span style="color: #008000;"><br></span><span style="color: #008080;">37</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;<br></span><span style="color: #008080;">38</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: #008080;">39</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CloseHandle(pi.hThread);<br></span><span style="color: #008080;">40</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CloseHandle(pi.hProcess);<br></span><span style="color: #008080;">41</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br></span><span style="color: #008080;">42</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">43</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br></span><span style="color: #008080;">44</span>&nbsp;<span style="color: #000000;">}</span></div>
<br>程序经过我的一番测试，暂时没有出现不良反应。希望对有这方面需求的朋友能有所借鉴，程序写的比较简单，如果有什么改进的地方或是有更好的办法，希望能及时的告知，谢谢。<br><img src ="http://www.cppblog.com/kylinxh/aggbug/69591.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kylinxh/" target="_blank">风神</a> 2008-12-16 17:56 <a href="http://www.cppblog.com/kylinxh/archive/2008/12/16/69591.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>给VC的控制台程序添加内存泄漏自动检测功能</title><link>http://www.cppblog.com/kylinxh/archive/2008/05/29/51457.html</link><dc:creator>风神</dc:creator><author>风神</author><pubDate>Thu, 29 May 2008 02:35:00 GMT</pubDate><guid>http://www.cppblog.com/kylinxh/archive/2008/05/29/51457.html</guid><wfw:comment>http://www.cppblog.com/kylinxh/comments/51457.html</wfw:comment><comments>http://www.cppblog.com/kylinxh/archive/2008/05/29/51457.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/kylinxh/comments/commentRss/51457.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kylinxh/services/trackbacks/51457.html</trackback:ping><description><![CDATA[<p>在VC中，基于MFC框架的应用程序由模板生成时，已经自动添加了内存泄漏自动检测功能。当你的程序有内存泄漏，在Debug调式模式下运行就会在vc的输出窗口里显示出来，非常方便我检查程序漏洞。但是当我写一些测试程序时，往往喜欢用控制台程序来编写，但是控制台程序不会自动添加内存泄漏自动检测功能。我在网上搜索了下，找到了添加的方法，经过我的整理把他写出来，希望对我们都有用！</p>
<p>第一步：在程序里定下一下宏（建议定义在stdafx.h头文件中）</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#ifdef&nbsp;_DEBUG<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">for&nbsp;memory&nbsp;leak&nbsp;check</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;_CRTDBG_MAP_ALLOC&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">使生成的内存dump包含内存块分配的具体代码为止</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">stdlib.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">crtdbg.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;</span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;CheckMemoryLeak&nbsp;_CrtSetDbgFlag(&nbsp;_CrtSetDbgFlag(&nbsp;_CRTDBG_REPORT_FLAG&nbsp;)|&nbsp;_CRTDBG_LEAK_CHECK_DF)</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">#endif</span><span style="COLOR: #000000">&nbsp;</span></div>
<p>第二步：在程序的入口处（就是main函数的开头）写如下语句</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#ifdef&nbsp;_DEBUG<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;CheckMemoryLeak;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">#endif</span></div>
<p><font color=black>经过这两步我们的控制台程序就已经可以自动检测内存泄漏了，不信？你自己试试不就知道了！:）</font></p>
<img src ="http://www.cppblog.com/kylinxh/aggbug/51457.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kylinxh/" target="_blank">风神</a> 2008-05-29 10:35 <a href="http://www.cppblog.com/kylinxh/archive/2008/05/29/51457.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>