﻿<?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++博客-xyjzsh</title><link>http://www.cppblog.com/xyjzsh/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 05 Apr 2026 02:07:59 GMT</lastBuildDate><pubDate>Sun, 05 Apr 2026 02:07:59 GMT</pubDate><ttl>60</ttl><item><title>first demo for gtest</title><link>http://www.cppblog.com/xyjzsh/archive/2013/02/06/197758.html</link><dc:creator> 呆人</dc:creator><author> 呆人</author><pubDate>Wed, 06 Feb 2013 09:14:00 GMT</pubDate><guid>http://www.cppblog.com/xyjzsh/archive/2013/02/06/197758.html</guid><wfw:comment>http://www.cppblog.com/xyjzsh/comments/197758.html</wfw:comment><comments>http://www.cppblog.com/xyjzsh/archive/2013/02/06/197758.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xyjzsh/comments/commentRss/197758.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xyjzsh/services/trackbacks/197758.html</trackback:ping><description><![CDATA[<div>1.&nbsp; 首先给出第一个运用gtest的demo
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">#include&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">stdafx.h</span><span style="color: #000000">"</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />#include&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">gmock/gmock-actions.h</span><span style="color: #000000">"</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">namespace</span><span style="color: #000000">&nbsp;testing;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Calculate<br /><img id="Codehighlighter1_96_159_Open_Image" onclick="this.style.display='none'; Codehighlighter1_96_159_Open_Text.style.display='none'; Codehighlighter1_96_159_Closed_Image.style.display='inline'; Codehighlighter1_96_159_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_96_159_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_96_159_Closed_Text.style.display='none'; Codehighlighter1_96_159_Open_Image.style.display='inline'; Codehighlighter1_96_159_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_96_159_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_96_159_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">:<br /><img id="Codehighlighter1_118_119_Open_Image" onclick="this.style.display='none'; Codehighlighter1_118_119_Open_Text.style.display='none'; Codehighlighter1_118_119_Closed_Image.style.display='inline'; Codehighlighter1_118_119_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_118_119_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_118_119_Closed_Text.style.display='none'; Codehighlighter1_118_119_Open_Image.style.display='inline'; Codehighlighter1_118_119_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;Calculate()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_118_119_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_118_119_Open_Text"><span style="color: #000000">{}</span></span><span style="color: #000000"><br /><img id="Codehighlighter1_145_157_Open_Image" onclick="this.style.display='none'; Codehighlighter1_145_157_Open_Text.style.display='none'; Codehighlighter1_145_157_Closed_Image.style.display='inline'; Codehighlighter1_145_157_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_145_157_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_145_157_Closed_Text.style.display='none'; Codehighlighter1_145_157_Open_Image.style.display='inline'; Codehighlighter1_145_157_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;add(</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;a,</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;b)</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_145_157_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_145_157_Open_Text"><span style="color: #000000">{</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;a</span><span style="color: #000000">+</span><span style="color: #000000">b;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000">;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;CalculateMock:</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Calculate<br /><img id="Codehighlighter1_200_281_Open_Image" onclick="this.style.display='none'; Codehighlighter1_200_281_Open_Text.style.display='none'; Codehighlighter1_200_281_Closed_Image.style.display='inline'; Codehighlighter1_200_281_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_200_281_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_200_281_Closed_Text.style.display='none'; Codehighlighter1_200_281_Open_Image.style.display='inline'; Codehighlighter1_200_281_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_200_281_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_200_281_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">:<br /><img id="Codehighlighter1_238_239_Open_Image" onclick="this.style.display='none'; Codehighlighter1_238_239_Open_Text.style.display='none'; Codehighlighter1_238_239_Closed_Image.style.display='inline'; Codehighlighter1_238_239_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_238_239_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_238_239_Closed_Text.style.display='none'; Codehighlighter1_238_239_Open_Image.style.display='inline'; Codehighlighter1_238_239_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;CalculateMock():Calculate()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_238_239_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_238_239_Open_Text"><span style="color: #000000">{}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;MOCK_METHOD2(add,</span><span style="color: #0000ff">long</span><span style="color: #000000">(</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;a,</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;b));<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000">;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;testFun(Calculate</span><span style="color: #000000">&amp;</span><span style="color: #000000">&nbsp;cal)<br /><img id="Codehighlighter1_314_338_Open_Image" onclick="this.style.display='none'; Codehighlighter1_314_338_Open_Text.style.display='none'; Codehighlighter1_314_338_Closed_Image.style.display='inline'; Codehighlighter1_314_338_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_314_338_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_314_338_Closed_Text.style.display='none'; Codehighlighter1_314_338_Open_Image.style.display='inline'; Codehighlighter1_314_338_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_314_338_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_314_338_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;cal.add(</span><span style="color: #000000">2</span><span style="color: #000000">,</span><span style="color: #000000">3</span><span style="color: #000000">);<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />TEST(testMock,testAdd)<br /><img id="Codehighlighter1_363_537_Open_Image" onclick="this.style.display='none'; Codehighlighter1_363_537_Open_Text.style.display='none'; Codehighlighter1_363_537_Closed_Image.style.display='inline'; Codehighlighter1_363_537_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_363_537_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_363_537_Closed_Text.style.display='none'; Codehighlighter1_363_537_Open_Image.style.display='inline'; Codehighlighter1_363_537_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_363_537_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_363_537_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;CalculateMock&nbsp;obj;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;len&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">10</span><span style="color: #000000">;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;ON_CALL(obj,add(</span><span style="color: #000000">2</span><span style="color: #000000">,</span><span style="color: #000000">3</span><span style="color: #000000">)).WillByDefault(Return(len));&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;EXPECT_CALL(obj,add(</span><span style="color: #000000">2</span><span style="color: #000000">,</span><span style="color: #000000">3</span><span style="color: #000000">)).Times(</span><span style="color: #000000">1</span><span style="color: #000000">);<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">obj.add(2,3);</span><span style="color: #008000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;EXPECT_EQ(</span><span style="color: #000000">10</span><span style="color: #000000">,&nbsp;obj.add(</span><span style="color: #000000">2</span><span style="color: #000000">,</span><span style="color: #000000">3</span><span style="color: #000000">));<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;_tmain(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;argc,&nbsp;_TCHAR</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;argv[])<br /><img id="Codehighlighter1_577_649_Open_Image" onclick="this.style.display='none'; Codehighlighter1_577_649_Open_Text.style.display='none'; Codehighlighter1_577_649_Closed_Image.style.display='inline'; Codehighlighter1_577_649_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_577_649_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_577_649_Closed_Text.style.display='none'; Codehighlighter1_577_649_Open_Image.style.display='inline'; Codehighlighter1_577_649_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_577_649_Closed_Text"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_577_649_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;testing::InitGoogleMock(</span><span style="color: #000000">&amp;</span><span style="color: #000000">argc,&nbsp;argv);&nbsp;&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;RUN_ALL_TESTS();<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span></div><br />做第一个demo需要注意的事项：<br />1. 将用到的gtest,gmock,和你自己运用的project用同样的code generation 的形式一致,将 project property-&gt;C++-&gt;Code Generation: 设置为：Multi-threaded Debug(/MTd)<br />2. 添加 using namespace testing, 否则会出现&#8216;Return&#8217;Identifier not found.这样的错误<br /><br />So excited to make it work after so much confusion, anxiety.<br />Fighting!!</div><img src ="http://www.cppblog.com/xyjzsh/aggbug/197758.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xyjzsh/" target="_blank"> 呆人</a> 2013-02-06 17:14 <a href="http://www.cppblog.com/xyjzsh/archive/2013/02/06/197758.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Failed to retrieve paths under VSTemplate for the specified registry hive[转载]</title><link>http://www.cppblog.com/xyjzsh/archive/2012/04/26/172799.html</link><dc:creator> 呆人</dc:creator><author> 呆人</author><pubDate>Thu, 26 Apr 2012 03:13:00 GMT</pubDate><guid>http://www.cppblog.com/xyjzsh/archive/2012/04/26/172799.html</guid><wfw:comment>http://www.cppblog.com/xyjzsh/comments/172799.html</wfw:comment><comments>http://www.cppblog.com/xyjzsh/archive/2012/04/26/172799.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xyjzsh/comments/commentRss/172799.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xyjzsh/services/trackbacks/172799.html</trackback:ping><description><![CDATA[<div><div id="cnblogs_post_body"><p>最近更换开发机的环境,从Windows XP换到Windows 7，结果以前在XP下的一个VS2008的一个插件项目在新环境中编译老是出错：</p> <h3><img title="Answer" alt="Answer" src="http://i2.social.microsoft.com/Forums/resources/images/trans.gif?cver=2.4.1184.0" />Failed to retrieve paths under VSTemplate for the specified registry hive</h3> <p>在网上搜索了一番，终于找到一篇文章介绍的解决方案：</p> <p>运行Vs2008 SDK-〉Tools-〉Reset the Microsoft Visual Studio 2008 SP1 Experimental hive</p> <p>然后重新编译就OK了。</p></div></div><div>http://www.cnblogs.com/tubo/archive/2009/09/14/1566654.html</div><img src ="http://www.cppblog.com/xyjzsh/aggbug/172799.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xyjzsh/" target="_blank"> 呆人</a> 2012-04-26 11:13 <a href="http://www.cppblog.com/xyjzsh/archive/2012/04/26/172799.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在VS中 build 和rebuild的区别</title><link>http://www.cppblog.com/xyjzsh/archive/2012/02/20/166044.html</link><dc:creator> 呆人</dc:creator><author> 呆人</author><pubDate>Mon, 20 Feb 2012 02:54:00 GMT</pubDate><guid>http://www.cppblog.com/xyjzsh/archive/2012/02/20/166044.html</guid><wfw:comment>http://www.cppblog.com/xyjzsh/comments/166044.html</wfw:comment><comments>http://www.cppblog.com/xyjzsh/archive/2012/02/20/166044.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xyjzsh/comments/commentRss/166044.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xyjzsh/services/trackbacks/166044.html</trackback:ping><description><![CDATA[<div class="content"><pre id="best-answer-content" class="reply-text mb10">Build只编译工程中上次修改过的文件，并链接程序生成可执行文件。</pre><pre class="reply-text mb10">如果以前没有作过编译，它会自动调用Rebuild操作，依次编译资源文件、源程序文件等；</pre><pre class="reply-text mb10">Rebuild不管文件是否作过修改，都会编译工程中的所有源文件。
Visual Studio的智能性还不够，它有时不能非常准确地判断出都有哪些文件需要重新编译。</pre><pre class="reply-text mb10">于是，当你Build时，它仅仅把它认为需要重新编译的重新编译一下，而有时候它的判断实际是不够的。</pre><pre class="reply-text mb10">但Rebuild就不同了，它把所有的东西都重新编译，不管改过的，没改过的；还是它认为有依赖的，没依赖的，统统重来。</pre></div><img src ="http://www.cppblog.com/xyjzsh/aggbug/166044.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xyjzsh/" target="_blank"> 呆人</a> 2012-02-20 10:54 <a href="http://www.cppblog.com/xyjzsh/archive/2012/02/20/166044.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用TortoiseGit第一次checkout</title><link>http://www.cppblog.com/xyjzsh/archive/2011/12/29/163121.html</link><dc:creator> 呆人</dc:creator><author> 呆人</author><pubDate>Thu, 29 Dec 2011 09:26:00 GMT</pubDate><guid>http://www.cppblog.com/xyjzsh/archive/2011/12/29/163121.html</guid><wfw:comment>http://www.cppblog.com/xyjzsh/comments/163121.html</wfw:comment><comments>http://www.cppblog.com/xyjzsh/archive/2011/12/29/163121.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xyjzsh/comments/commentRss/163121.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xyjzsh/services/trackbacks/163121.html</trackback:ping><description><![CDATA[<div>首先安装msysgit，然后安装TortoiseGit。<br />可以在程序中看到GitGUI和TortoiseGit。<br />使用GitGUI进行checkout。<br />步骤为：<br />1. 在电脑上create folder，命名为demo.<br />2.选中demo。在菜单中选择git clone.<br />就可以checkout下来代码。</div><img src ="http://www.cppblog.com/xyjzsh/aggbug/163121.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xyjzsh/" target="_blank"> 呆人</a> 2011-12-29 17:26 <a href="http://www.cppblog.com/xyjzsh/archive/2011/12/29/163121.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sqlserver2008里面的游标</title><link>http://www.cppblog.com/xyjzsh/archive/2011/11/03/159571.html</link><dc:creator> 呆人</dc:creator><author> 呆人</author><pubDate>Thu, 03 Nov 2011 08:28:00 GMT</pubDate><guid>http://www.cppblog.com/xyjzsh/archive/2011/11/03/159571.html</guid><wfw:comment>http://www.cppblog.com/xyjzsh/comments/159571.html</wfw:comment><comments>http://www.cppblog.com/xyjzsh/archive/2011/11/03/159571.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xyjzsh/comments/commentRss/159571.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xyjzsh/services/trackbacks/159571.html</trackback:ping><description><![CDATA[&nbsp;SQL是一种基于集合的语言(a set-based language) ,他更擅长操作和提出一组数据，而不是对<br />&nbsp;数据进行一行一行的处理。<br />&nbsp;SQL is a set-based language ,meaning that is excels at mantipulating and retrieving<br />&nbsp;set of rows ,rather than performing single row-by-row processing.<br />&nbsp;如果你的程序里一定要一条一条的执行，那么一定要先考虑使用如while循环，子查询，<br />&nbsp;临时表，表变量等等，如果这些都不能满足要求，在考虑使用游标。<br />&nbsp;<br />&nbsp;T-SQL中游标的生存周期：<br />&nbsp;1.用返回一个有效结果集的sql语句来定义一个游标。<br />&nbsp; a cursor is defined via a SQL statement that returns a valid result set.<br />&nbsp;2. 打开游标<br />&nbsp;3. 一旦游标被打开就可以从游标中每次取出一行数据，要根据游标的定义可以向前去数据或<br />&nbsp;向后取数据<br />&nbsp;the rows can be fetched moving forword or backword ,depending on the original cursor definition.<br />&nbsp;4. 根据游标的类型，数据可以被修改或者只能读。<br />&nbsp;5.最后，用完游标后，必须被显示的关闭，并且从内存中移除。<br />&nbsp;<br />&nbsp;游标定义格式：<br />&nbsp;declare cursor_name cursor<br />&nbsp;[local|global]<br />&nbsp;[forword_only|scroll]<br />&nbsp;[static|keyset|dynamic|fast_forword]<br />&nbsp;[read_only| scroll_locks|optimistic]<br />&nbsp;[type_warning]<br />&nbsp;for select_statement[for update [of column[,...]]]<br />&nbsp;<br />The select_statement argument is the query used to define the data within the cursor. Avoid<br />using a query that hasmore columns and rows than will actually be used, because cursors, while<br />open, are kept inmemory. The UPDATE [OF column_name [,...n]] is used to specify those columns<br />that are allowed to be updated by the cursor.<br />&nbsp;<img src ="http://www.cppblog.com/xyjzsh/aggbug/159571.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xyjzsh/" target="_blank"> 呆人</a> 2011-11-03 16:28 <a href="http://www.cppblog.com/xyjzsh/archive/2011/11/03/159571.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sqlserver2008 条件循环</title><link>http://www.cppblog.com/xyjzsh/archive/2011/11/03/159570.html</link><dc:creator> 呆人</dc:creator><author> 呆人</author><pubDate>Thu, 03 Nov 2011 08:27:00 GMT</pubDate><guid>http://www.cppblog.com/xyjzsh/archive/2011/11/03/159570.html</guid><wfw:comment>http://www.cppblog.com/xyjzsh/comments/159570.html</wfw:comment><comments>http://www.cppblog.com/xyjzsh/archive/2011/11/03/159570.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xyjzsh/comments/commentRss/159570.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xyjzsh/services/trackbacks/159570.html</trackback:ping><description><![CDATA[<p>条件处理：condtional processing<br />1.case函数以一个表达式作为输入，一个值作为输出<br />格式：case 后面有输入表达式，when后面的的每一个表达式都会和case后面的输入表达式进行比较运算<br />如果相等，则返回，否则返回else后面的表达式，如果没有else则返回NULL。<br />case input_expression<br />&nbsp;&nbsp;&nbsp;&nbsp; when when_expression then result_expression<br />&nbsp;&nbsp;&nbsp;&nbsp; [...n]<br />&nbsp;&nbsp;&nbsp;&nbsp; [else else_result_expression]<br />end</p>
<p>case的第二种情况：<br />case后面没有表达式，when后面跟的是bool表达式。返回第一个when后面计算为true的表达式<br />格式为：<br />case<br />&nbsp;when bool_expression then result_expression<br />&nbsp;[...n]<br />&nbsp;else result_expression<br />end</p>
<p>2. if....else...的格式<br />if bool_expression<br />{sql_statement|sql_block}<br />[else<br />{sql_statement|sql_block}<br />]</p>
<p>3.begin ....end 相当于c++中的{...}用来形成一个代码块</p>
<p>4.条件循环<br />return,while,goto,waitfor</p>
<p>return <br />return 用于结束当前的sql块,查询，存储过程。<br />类似于c++中的return。<br />return 可以返回一个数字</p>
<p>while 类似c++中的while，同样支持break，continue，break来结束当前内层循环，continue继续当前循环</p>
<p>waitfor格式<br />waitfor<br />&nbsp;delay 'time_to_pass'//执行前等待的时间：格式为00:00:00小时：分钟：秒<br />&nbsp;|time 'time_to_execute'//设置实际执行的时间<br />&nbsp;|（receive_statement）[,TimeOUT timeout]<br />&nbsp;可以利用waitfor将某些复杂的执行设定为在相对空闲的时间内进行。</p><img src ="http://www.cppblog.com/xyjzsh/aggbug/159570.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xyjzsh/" target="_blank"> 呆人</a> 2011-11-03 16:27 <a href="http://www.cppblog.com/xyjzsh/archive/2011/11/03/159570.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>printf 输出int64</title><link>http://www.cppblog.com/xyjzsh/archive/2011/11/01/159456.html</link><dc:creator> 呆人</dc:creator><author> 呆人</author><pubDate>Tue, 01 Nov 2011 06:29:00 GMT</pubDate><guid>http://www.cppblog.com/xyjzsh/archive/2011/11/01/159456.html</guid><wfw:comment>http://www.cppblog.com/xyjzsh/comments/159456.html</wfw:comment><comments>http://www.cppblog.com/xyjzsh/archive/2011/11/01/159456.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xyjzsh/comments/commentRss/159456.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xyjzsh/services/trackbacks/159456.html</trackback:ping><description><![CDATA[<div>__int64 long a=10;<br />printf("%i64u",a);</div><img src ="http://www.cppblog.com/xyjzsh/aggbug/159456.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xyjzsh/" target="_blank"> 呆人</a> 2011-11-01 14:29 <a href="http://www.cppblog.com/xyjzsh/archive/2011/11/01/159456.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sqlserver2008中数据类型的优先级</title><link>http://www.cppblog.com/xyjzsh/archive/2011/10/31/159382.html</link><dc:creator> 呆人</dc:creator><author> 呆人</author><pubDate>Mon, 31 Oct 2011 03:25:00 GMT</pubDate><guid>http://www.cppblog.com/xyjzsh/archive/2011/10/31/159382.html</guid><wfw:comment>http://www.cppblog.com/xyjzsh/comments/159382.html</wfw:comment><comments>http://www.cppblog.com/xyjzsh/archive/2011/10/31/159382.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xyjzsh/comments/commentRss/159382.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xyjzsh/services/trackbacks/159382.html</trackback:ping><description><![CDATA[<p>当两个不同数据类型的表达式用运算符组合后，数据类型优先级规则指定将优先级较低的数据类型转换为优先级较高的数据类型。如果此转换不是所支持的隐式转换，则返回错误。当两个操作数表达式具有相同的数据类型时，运算的结果便为该数据类型。</p>
<p>SQL Server 对数据类型使用以下优先级顺序：</p>
<ol><li>
<p>用户定义数据类型（最高）</p></li><li>
<p><strong>sql_varian</strong><strong>t</strong></p></li><li>
<p><strong>xml</strong></p></li><li>
<p><strong>datetimeoffset</strong></p></li><li>
<p><strong>datetime2</strong></p></li><li>
<p><strong>datetime</strong></p></li><li>
<p><strong>smalldatetime</strong></p></li><li>
<p><strong>date</strong></p></li><li>
<p><strong>time</strong></p></li><li>
<p><strong>float</strong></p></li><li>
<p><strong>real</strong></p></li><li>
<p><strong>decimal</strong></p></li><li>
<p><strong>money</strong></p></li><li>
<p><strong>smallmoney</strong></p></li><li>
<p><strong>bigint</strong></p></li><li>
<p><strong>int</strong></p></li><li>
<p><strong>smallint</strong></p></li><li>
<p><strong>tinyint</strong></p></li><li>
<p><strong>bit</strong></p></li><li>
<p><strong>ntext</strong></p></li><li>
<p><strong>text</strong></p></li><li>
<p><strong>image</strong></p></li><li>
<p><strong>timestamp</strong></p></li><li>
<p><strong>uniqueidentifier</strong></p></li><li>
<p><strong>nvarchar</strong>（包括 <span class="input">nvarchar(max)</span>）</p></li><li>
<p><strong>nchar</strong></p></li><li>
<p><strong>varchar</strong>（包括 <span class="input">varchar(max)</span>）</p></li><li>
<p><strong>char</strong></p></li><li>
<p><strong>varbinary</strong>（包括 <span class="input">varbinary(max)</span>）</p></li><li>
<p><strong>binary</strong>（最低）</p></li></ol><img src ="http://www.cppblog.com/xyjzsh/aggbug/159382.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xyjzsh/" target="_blank"> 呆人</a> 2011-10-31 11:25 <a href="http://www.cppblog.com/xyjzsh/archive/2011/10/31/159382.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一种类型的字符拷贝函数</title><link>http://www.cppblog.com/xyjzsh/archive/2011/08/10/152943.html</link><dc:creator> 呆人</dc:creator><author> 呆人</author><pubDate>Wed, 10 Aug 2011 06:02:00 GMT</pubDate><guid>http://www.cppblog.com/xyjzsh/archive/2011/08/10/152943.html</guid><wfw:comment>http://www.cppblog.com/xyjzsh/comments/152943.html</wfw:comment><comments>http://www.cppblog.com/xyjzsh/archive/2011/08/10/152943.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xyjzsh/comments/commentRss/152943.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xyjzsh/services/trackbacks/152943.html</trackback:ping><description><![CDATA[<div>1.函数原型：<br />LPTSTR <font style="background-color: #3399ff" color="#ffffff">lstrcpyn</font>(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /><br />&nbsp;&nbsp;&nbsp; LPTSTR <em>lpString1</em>,<br />&nbsp;&nbsp;&nbsp; LPCTSTR <em>lpString2</em>,//指向一个以NULL结束的字符串<br />&nbsp;&nbsp;&nbsp; int <em>iMaxLength&nbsp;&nbsp;&nbsp;//</em>从lpString2拷贝到lpString1的字符串个数，包括NULL字符<br />);<br />成功返回指向lpString1的指针，否则返回NULL。<br /><br />如果lpString2的长度大于iMaxLength，该方法实际上是<span style="color: red">将lpString2中的前</span><span style="color: #0000ff">iMaxLength-1</span><span style="color: red">个字符</span>和<span style="color: #ff0000">一个NULL字符</span>拷贝到lpString1中。<br />如果该方法成功，则lpString1一定是以NULL结束的字符串。<br /><br />2._tcsncpy是一个宏，考虑在unicode的情况下<br />define _tcsncpy wcsncpy<br /><br />wchar_t *<font style="background-color: #3399ff" color="#ffffff">wcsncpy</font>(<br />&nbsp;&nbsp; wchar_t *<span class="parameter">strDest</span>,<br />&nbsp;&nbsp; const wchar_t *<span class="parameter">strSource</span>,<br />&nbsp;&nbsp; size_t <span class="parameter">count</span> <br />);<br /><br />Parameters 
<div class="section" name="collapseableSection">
<dl class="authored">
<dt><span class="parameter">strDest</span> 
<dd>
<p>Destination string.</p>
<dt><span class="parameter">strSource</span> 
<dd>
<p>Source string.</p>
<dt><span class="parameter">count</span> 
<dd>
<p>Number of characters to be copied.</p></dd></dl></div>
<h1 class="heading"><span style="font-size: 14pt; cursor: default" tabindex="0">Return Value</span></h1>
<div id="returnValueSection" class="section" name="collapseableSection">
<p>Returns <span class="parameter">strDest</span>. No return value is reserved to indicate an error.<br />不能保证NULL结束，将count个字符拷贝到strDest中。</p></div><br /><br /><br /></div><img src ="http://www.cppblog.com/xyjzsh/aggbug/152943.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xyjzsh/" target="_blank"> 呆人</a> 2011-08-10 14:02 <a href="http://www.cppblog.com/xyjzsh/archive/2011/08/10/152943.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>重载标准输出符号operator&lt;&lt;</title><link>http://www.cppblog.com/xyjzsh/archive/2011/08/10/152941.html</link><dc:creator> 呆人</dc:creator><author> 呆人</author><pubDate>Wed, 10 Aug 2011 05:43:00 GMT</pubDate><guid>http://www.cppblog.com/xyjzsh/archive/2011/08/10/152941.html</guid><wfw:comment>http://www.cppblog.com/xyjzsh/comments/152941.html</wfw:comment><comments>http://www.cppblog.com/xyjzsh/archive/2011/08/10/152941.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xyjzsh/comments/commentRss/152941.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xyjzsh/services/trackbacks/152941.html</trackback:ping><description><![CDATA[<div>CString是我自己定义的一个类<br />为了实现：<br />CString str("123abvc");<br />cout&lt;&lt;str&lt;&lt;endl;<br /><br /><br />声明：<br />&nbsp;<span style="color: #800000">ostream&amp; operator&lt;&lt;(ostream&amp; os,const CString&amp; str);</span><br />实现：<br />
<p>ostream&amp; operator&lt;&lt;(ostream&amp; os,const CString&amp; str)<br />{<br /><span style="color: red">&nbsp;long multiBytes = WideCharToMultiByte(CP_ACP,0,str._pData,-1,</span><span style="color: #0000ff">NULL,0</span><span style="color: red">,NULL,NULL);//获得将宽字节转换成多自己时，所需要的字节个数，</span><span style="color: #0000ff">注意蓝色部分</span><br />&nbsp;char *lpMultiBytes = new char[multiBytes+10];//分配多字节时所需要的内存<br />&nbsp;memset(lpMultiBytes,0,multiBytes+10);</p>
<p>&nbsp;WideCharToMultiByte(CP_ACP,0,str._pData,-1,<span style="color: #0000ff">lpMultiBytes,multiBytes+10</span>,NULL,NULL);//调用win32api函数将宽字节的表示转换成为多字节的表示，<span style="color: #0000ff">注意蓝色部分</span></p>
<p>&nbsp;os&lt;&lt;lpMultiBytes;</p>
<p>&nbsp;return os;//注意返回值<br />}</p></div><img src ="http://www.cppblog.com/xyjzsh/aggbug/152941.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xyjzsh/" target="_blank"> 呆人</a> 2011-08-10 13:43 <a href="http://www.cppblog.com/xyjzsh/archive/2011/08/10/152941.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>