﻿<?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++博客-披星戴月-随笔分类-c/c++</title><link>http://www.cppblog.com/wangjs720/category/5126.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 26 Sep 2009 06:10:46 GMT</lastBuildDate><pubDate>Sat, 26 Sep 2009 06:10:46 GMT</pubDate><ttl>60</ttl><item><title>有意思的腾讯面试</title><link>http://www.cppblog.com/wangjs720/archive/2009/09/23/97033.html</link><dc:creator>披星戴月</dc:creator><author>披星戴月</author><pubDate>Wed, 23 Sep 2009 09:35:00 GMT</pubDate><guid>http://www.cppblog.com/wangjs720/archive/2009/09/23/97033.html</guid><wfw:comment>http://www.cppblog.com/wangjs720/comments/97033.html</wfw:comment><comments>http://www.cppblog.com/wangjs720/archive/2009/09/23/97033.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/wangjs720/comments/commentRss/97033.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wangjs720/services/trackbacks/97033.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 上周末去腾讯面试，跟一个技术人员聊，聊到如何通过WAP接入点连接网络时：<br><br>T：说说通过WAP接入点连接一个服务器的过程。<br>W：初始化WinSock库－调用socket()创建一个socket,调用connect连接10.0.0.172服务器，然后发送一个CONNECT请求连接目标服务器...(被打断).<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/wangjs720/archive/2009/09/23/97033.html'>阅读全文</a><img src ="http://www.cppblog.com/wangjs720/aggbug/97033.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangjs720/" target="_blank">披星戴月</a> 2009-09-23 17:35 <a href="http://www.cppblog.com/wangjs720/archive/2009/09/23/97033.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Dev Tools</title><link>http://www.cppblog.com/wangjs720/archive/2009/08/28/94707.html</link><dc:creator>披星戴月</dc:creator><author>披星戴月</author><pubDate>Fri, 28 Aug 2009 14:43:00 GMT</pubDate><guid>http://www.cppblog.com/wangjs720/archive/2009/08/28/94707.html</guid><wfw:comment>http://www.cppblog.com/wangjs720/comments/94707.html</wfw:comment><comments>http://www.cppblog.com/wangjs720/archive/2009/08/28/94707.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wangjs720/comments/commentRss/94707.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wangjs720/services/trackbacks/94707.html</trackback:ping><description><![CDATA[
		<strong>astyle</strong>
		<br />Artistic Style is a reindenter and reformatter of C, C++, C# and Java source code.<br /><br /><strong>autoconf</strong><br />Development version of the automatic configure script builder.<br /><br /><strong>automake</strong><br />A tool for generating GNU-compliant Makefiles.<br /><br /><strong>bashdb</strong><br />Debugger for bash scripts<br /><br /><strong>cppcheck</strong><br />A tool for static C/C++ code analysis<br /><br /><strong>doxygen</strong><br />A documentation system for C++, C, Java, Objective-C, IDL and to some extent PHP, C# and D.<br /><br /><strong>gcc-tools-autoconf</strong><br />automatic configure script builder<br /><br /><strong>gcc-tools-automake</strong><br />a tool for generation GNU-compliant Makefiles.<br /><br /><strong>git</strong><br />Fast Version Control System<br /><br /><strong>glib-devel</strong><br />Gnome C function library<br /><br /><strong>indent</strong><br />C/C++ language source code formatting program<br /><br /><strong>libiconv</strong><br />GNU character set conversion library and utilities.<br /><br /><strong>libjpeg-devel</strong><br />A library for manipulationg JPEG image format files.<br /><br /><strong>libpng</strong><br />PNG library.<br /><br /><strong>pcre-devel<br /></strong>Perl-Compatible Regular Expressions.<img src ="http://www.cppblog.com/wangjs720/aggbug/94707.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangjs720/" target="_blank">披星戴月</a> 2009-08-28 22:43 <a href="http://www.cppblog.com/wangjs720/archive/2009/08/28/94707.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>gflags - a debugging story </title><link>http://www.cppblog.com/wangjs720/archive/2009/07/14/90012.html</link><dc:creator>披星戴月</dc:creator><author>披星戴月</author><pubDate>Tue, 14 Jul 2009 04:47:00 GMT</pubDate><guid>http://www.cppblog.com/wangjs720/archive/2009/07/14/90012.html</guid><wfw:comment>http://www.cppblog.com/wangjs720/comments/90012.html</wfw:comment><comments>http://www.cppblog.com/wangjs720/archive/2009/07/14/90012.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wangjs720/comments/commentRss/90012.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wangjs720/services/trackbacks/90012.html</trackback:ping><description><![CDATA[
		<p>I hate crashes that disappear when run under the debugger and I had one when<br />porting mupdf to Windows.</p>
		<p>It helps to know that there’s at least one reason for a changed behavior under<br />the debugger: it automatically triggers using debugging heap. While debugging<br />heap usually helps find problems, sometimes it does the opposite by changing<br />the details of memory allocation.</p>
		<p>One helpful tool when debugging memory problems on Windows is gflags which can<br />enable page heap instrumentation for a given program. It works by putting each<br />allocation into a separate region of memory and putting a non-readable page<br />right after that. Also, upon freeing it makes the memory unreadable. That way<br />an overwrite of memory block while it’s still being used or accessing the<br />memory after it was freed will cause immediate crash.</p>
		<p>The downside is that using gflags uses much more memory. But in those days of<br />cheap gigabytes it’s not a problem that can’t be solved with a couple hundred<br />bucks.</p>
		<p>Basic usage of gflags.exe is simple: <br /><code><font color="#ff0000"><strong>gflags /p /full /enable foo.exe</strong></font></code></p>
		<p>From now on foo.exe will always be run with this instrumentation turned on. To<br />disable, do <br /><code><font color="#ff0000"><strong>gflags /p /disable foo.exe</strong></font></code></p>
		<p>To see which programs have page heap enabled, do <code>gflags /p</code>. gflags offers many<br />other option and you can learn about them via <code>gflags /?</code>. If you run gflags<br />without any options, you’ll get a (very confusing) <span class="caps">GUI</span>.</p>
		<p>It worked like a charm. I got a crash on accessing freed memory and all I had<br />to do was to backtrack to where this memory was allocated to figure out the<br />problem.<br /><br />reference: <a href="http://blog.kowalczyk.info/article/gflags-a-debugging-story.html">http://blog.kowalczyk.info/article/gflags-a-debugging-story.html</a></p>
<img src ="http://www.cppblog.com/wangjs720/aggbug/90012.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangjs720/" target="_blank">披星戴月</a> 2009-07-14 12:47 <a href="http://www.cppblog.com/wangjs720/archive/2009/07/14/90012.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用vs2005(vc8)编译log4cpp-0.3.5rc3</title><link>http://www.cppblog.com/wangjs720/archive/2008/04/13/47002.html</link><dc:creator>披星戴月</dc:creator><author>披星戴月</author><pubDate>Sun, 13 Apr 2008 14:22:00 GMT</pubDate><guid>http://www.cppblog.com/wangjs720/archive/2008/04/13/47002.html</guid><wfw:comment>http://www.cppblog.com/wangjs720/comments/47002.html</wfw:comment><comments>http://www.cppblog.com/wangjs720/archive/2008/04/13/47002.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wangjs720/comments/commentRss/47002.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wangjs720/services/trackbacks/47002.html</trackback:ping><description><![CDATA[
		<div class="postText">
				<div align="center">
						<h1> </h1>
				</div>
				<div style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #ffffff">问题：由于log4cpp-0.3.5rc3仅提供了vc6的工程文件，因此，使用vs2005打开后，需要进行转换。但是转换后，不能正确编译，提示Custom Build Step时出现了错误。 
<div><p>分析：因为log4cpp在生成NTEventLogAppender.dll时，需要连接NTEventLogCategories.mc文件。所以，项目设置了自定义的生成步骤去生成NTEventLogAppender.dll。但从vc6的工程文件转换时，这些步骤却没有正确的转换过来。从而出现上述问题。</p><p>解决方法：重新填写Custom Build Step项。</p><p>其中，CommandLine填写以下内容：</p><p>if not exist $(OutDir) md $(OutDir)<br />"mc.exe" -h $(OutDir) -r $(OutDir) $(SolutionDir)NTEventLogCategories.mc<br />"RC.exe" -r -fo $(OutDir)\$(InputName).res $(ProjectDir)\$(InputName).rc<br />"link.exe" /MACHINE:IX86 -dll -noentry -out:$(OutDir)\NTEventLogAppender.dll $(OutDir)\$(InputName).res</p><p>Outputs填写：$(OutDir)\NTEventLogAppender.dll</p><p>适用范围：log4cpp项目、log4cppDLL项目的Debug和Release配置。同时，该方法适用于vs2003(vc7.1)。</p></div></div>原文出处：<br /><a href="/ace/archive/2007/01/27/18050.html">http://www.cppblog.com/ace/archive/2007/01/27/18050.html</a></div>
<img src ="http://www.cppblog.com/wangjs720/aggbug/47002.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangjs720/" target="_blank">披星戴月</a> 2008-04-13 22:22 <a href="http://www.cppblog.com/wangjs720/archive/2008/04/13/47002.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>big-endian和little-endian</title><link>http://www.cppblog.com/wangjs720/archive/2008/03/06/43823.html</link><dc:creator>披星戴月</dc:creator><author>披星戴月</author><pubDate>Thu, 06 Mar 2008 08:13:00 GMT</pubDate><guid>http://www.cppblog.com/wangjs720/archive/2008/03/06/43823.html</guid><wfw:comment>http://www.cppblog.com/wangjs720/comments/43823.html</wfw:comment><comments>http://www.cppblog.com/wangjs720/archive/2008/03/06/43823.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wangjs720/comments/commentRss/43823.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wangjs720/services/trackbacks/43823.html</trackback:ping><description><![CDATA[
		<span style="FONT-SIZE: 9pt; COLOR: black">一个例子：</span>
		<span style="FONT-SIZE: 9pt; COLOR: black">
				<font face="Microsoft Sans Serif">
						<br />
				</font>
		</span>
		<span style="FONT-SIZE: 9pt; COLOR: black">如果我们将</span>
		<span style="FONT-SIZE: 9pt; COLOR: black">
				<font face="Microsoft Sans Serif">0x1234abcd</font>
		</span>
		<span style="FONT-SIZE: 9pt; COLOR: black">写入到以</span>
		<span style="FONT-SIZE: 9pt; COLOR: black">
				<font face="Microsoft Sans Serif">0x0000</font>
		</span>
		<span style="FONT-SIZE: 9pt; COLOR: black">开始的内存中，则结果为:<br /></span>
		<span style="FONT-SIZE: 9pt; COLOR: black">
				<font face="Microsoft Sans Serif">
						<br />
						<span>                  </span>big-endian <span>  </span>little-endian <br />0x0000<span>          </span>0x12<span>       </span><span>     </span>0xcd <br />0x0001<span>     </span><span>     </span>0x34<span>       </span><span>     </span>0xab <br />0x0002 <span>         </span>0xab<span>       </span><span>     </span>0x34 <br />0x0003<span>          </span>0xcd<span>            </span>0x12 <br /></font>
		</span>
<img src ="http://www.cppblog.com/wangjs720/aggbug/43823.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangjs720/" target="_blank">披星戴月</a> 2008-03-06 16:13 <a href="http://www.cppblog.com/wangjs720/archive/2008/03/06/43823.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数组的引用</title><link>http://www.cppblog.com/wangjs720/archive/2007/09/10/31927.html</link><dc:creator>披星戴月</dc:creator><author>披星戴月</author><pubDate>Mon, 10 Sep 2007 04:09:00 GMT</pubDate><guid>http://www.cppblog.com/wangjs720/archive/2007/09/10/31927.html</guid><wfw:comment>http://www.cppblog.com/wangjs720/comments/31927.html</wfw:comment><comments>http://www.cppblog.com/wangjs720/archive/2007/09/10/31927.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wangjs720/comments/commentRss/31927.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wangjs720/services/trackbacks/31927.html</trackback:ping><description><![CDATA[象如下定义就得到一个数组的引用<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 类型名 （&amp;变量明）[N]；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 实例<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int int_array[10];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int (&amp;int_ref)[10] = int_array;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这样就得到了一个数组的应用<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在函数的声明中用数组的引用定义，就不怕数组退化了。如下<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for_each( int (&amp;int_ref)[10] )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for( int i=0; i&lt;10; ++i&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::cout &lt;&lt; int_ref[i] &lt;&lt; std::endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int main( int argc, char* argv[] )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int int_array[] = { 1, 2, 3, 4, 5,&nbsp;6, 7, 8, 9, 10&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for_each( int_array );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在上面的代码中，如果你传入不是10个尺寸的数组，是编译通不过的。代码的安全性提高了。&nbsp;&nbsp;&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 想要定义一个数组引用类型，方法如下<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typedef&nbsp;类型明 (&amp;数组引用类型明)[N];<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 实例<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typedef int (&amp;Array_Ref)[10];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Array_Ref就是一个数组的引用类型了。</p>
<img src ="http://www.cppblog.com/wangjs720/aggbug/31927.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangjs720/" target="_blank">披星戴月</a> 2007-09-10 12:09 <a href="http://www.cppblog.com/wangjs720/archive/2007/09/10/31927.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++解析XML－TinyXml</title><link>http://www.cppblog.com/wangjs720/archive/2007/09/06/31686.html</link><dc:creator>披星戴月</dc:creator><author>披星戴月</author><pubDate>Thu, 06 Sep 2007 04:22:00 GMT</pubDate><guid>http://www.cppblog.com/wangjs720/archive/2007/09/06/31686.html</guid><wfw:comment>http://www.cppblog.com/wangjs720/comments/31686.html</wfw:comment><comments>http://www.cppblog.com/wangjs720/archive/2007/09/06/31686.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wangjs720/comments/commentRss/31686.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wangjs720/services/trackbacks/31686.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: TinyXml:<br>Homepage: http://www.grinninglizard.com/tinyxml/<br>Download：http://sourceforge.net/projects/tinyxml&nbsp;&nbsp;<a href='http://www.cppblog.com/wangjs720/archive/2007/09/06/31686.html'>阅读全文</a><img src ="http://www.cppblog.com/wangjs720/aggbug/31686.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangjs720/" target="_blank">披星戴月</a> 2007-09-06 12:22 <a href="http://www.cppblog.com/wangjs720/archive/2007/09/06/31686.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>