﻿<?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++博客-zpeng</title><link>http://www.cppblog.com/zpeng/</link><description /><language>zh-cn</language><lastBuildDate>Thu, 23 Apr 2026 04:10:01 GMT</lastBuildDate><pubDate>Thu, 23 Apr 2026 04:10:01 GMT</pubDate><ttl>60</ttl><item><title>近期面试见闻</title><link>http://www.cppblog.com/zpeng/archive/2012/08/06/186511.html</link><dc:creator>小天狼星</dc:creator><author>小天狼星</author><pubDate>Mon, 06 Aug 2012 14:47:00 GMT</pubDate><guid>http://www.cppblog.com/zpeng/archive/2012/08/06/186511.html</guid><wfw:comment>http://www.cppblog.com/zpeng/comments/186511.html</wfw:comment><comments>http://www.cppblog.com/zpeng/archive/2012/08/06/186511.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/zpeng/comments/commentRss/186511.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zpeng/services/trackbacks/186511.html</trackback:ping><description><![CDATA[最近又开始了找工作之旅,　面试了多家公司，记录一下经历。<br />今天面试了杭州nero．<br />先是做题，c++模板的题做的不好，com的挺多．　<br />技术面试来了两个人，一个体型壮硕就叫壮哥吧，一个尖头奸脑戴个眼镜就称其为尖弟吧．　壮哥上来问了些基础和知识面上的东西，我是有一说一，实事求是．　<br />尖弟沉静了会就开始乱叫了．东一点西一点，奇淫技巧，自以为是．一些问题都不知他在问啥．老子听着就火大，最看不惯半瓶醋的贱人了．　<br />随后来了人事，这女的更恶心，嘴上长了个黑点，好像相书上说这种女的怎么怎着来着，反正对这种人评价不太好．果然，从她问的问题看好像是在忽悠，时不时还扮嫩淫笑一下，闷骚十足．<br />看这样子，这种公司这种人不去也罢． <img src ="http://www.cppblog.com/zpeng/aggbug/186511.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zpeng/" target="_blank">小天狼星</a> 2012-08-06 22:47 <a href="http://www.cppblog.com/zpeng/archive/2012/08/06/186511.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ror的逆向Ｃ代码</title><link>http://www.cppblog.com/zpeng/archive/2010/08/22/124294.html</link><dc:creator>小天狼星</dc:creator><author>小天狼星</author><pubDate>Sun, 22 Aug 2010 10:00:00 GMT</pubDate><guid>http://www.cppblog.com/zpeng/archive/2010/08/22/124294.html</guid><wfw:comment>http://www.cppblog.com/zpeng/comments/124294.html</wfw:comment><comments>http://www.cppblog.com/zpeng/archive/2010/08/22/124294.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/zpeng/comments/commentRss/124294.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zpeng/services/trackbacks/124294.html</trackback:ping><description><![CDATA[<p>昨天涛哥让我帮他做点事，其中有一段是把内联汇编代码写成对应的Ｃ代码形式，还好是内联的汇编，思路较清楚，先是抽出来在ＩＤＡ中f5一下，然后看着raw code写code还是较快的，就是其中的一条汇编指令ror edi ,1不知如何处理，IDA是直接用了个_ROR()来标识，我感觉不对劲问了下涛哥，他给出了答案，<br>&nbsp;(edi &gt;&gt; 1) || (edi &lt;&lt; 31)<br>我看了感觉有点奇妙了．</p>
<img src ="http://www.cppblog.com/zpeng/aggbug/124294.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zpeng/" target="_blank">小天狼星</a> 2010-08-22 18:00 <a href="http://www.cppblog.com/zpeng/archive/2010/08/22/124294.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于sizeof</title><link>http://www.cppblog.com/zpeng/archive/2010/08/03/122101.html</link><dc:creator>小天狼星</dc:creator><author>小天狼星</author><pubDate>Tue, 03 Aug 2010 13:06:00 GMT</pubDate><guid>http://www.cppblog.com/zpeng/archive/2010/08/03/122101.html</guid><wfw:comment>http://www.cppblog.com/zpeng/comments/122101.html</wfw:comment><comments>http://www.cppblog.com/zpeng/archive/2010/08/03/122101.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zpeng/comments/commentRss/122101.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zpeng/services/trackbacks/122101.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 前段时间接连到公司面试，其中这些公司包括什么华为，文思创新以及其他一些不出名的或忘了叫什么名字的垃圾公司，跑了不少路，做了不少的笔试题,感觉关于sizeof的运算相关的题目较多，自己将题做的一片糊涂，回来后亲自写了实验来验证。先帖代码：<br></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">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">struct</span><span style="COLOR: #000000">&nbsp;t<br><img id=Codehighlighter1_50_82_Open_Image style="DISPLAY: inline" onclick="this.style.display='none'; Codehighlighter1_50_82_Open_Text.style.display='none'; Codehighlighter1_50_82_Closed_Image.style.display='inline'; Codehighlighter1_50_82_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_50_82_Closed_Image style="DISPLAY: none; WIDTH: 11px; HEIGHT: 16px" onclick="this.style.display='none'; Codehighlighter1_50_82_Closed_Text.style.display='none'; Codehighlighter1_50_82_Open_Image.style.display='inline'; Codehighlighter1_50_82_Open_Text.style.display='inline';" height=16 src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" width=11 align=top></span><span id=Codehighlighter1_50_82_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_50_82_Open_Text style="DISPLAY: inline"><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;l;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000">&nbsp;a;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;b[</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;func(</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;ch[</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">])<br><img id=Codehighlighter1_109_155_Open_Image onclick="this.style.display='none'; Codehighlighter1_109_155_Open_Text.style.display='none'; Codehighlighter1_109_155_Closed_Image.style.display='inline'; Codehighlighter1_109_155_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_109_155_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_109_155_Closed_Text.style.display='none'; Codehighlighter1_109_155_Open_Image.style.display='inline'; Codehighlighter1_109_155_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_109_155_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_109_155_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">sizeof&nbsp;ch&nbsp;:</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(ch)&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;main()<br><img id=Codehighlighter1_170_394_Open_Image onclick="this.style.display='none'; Codehighlighter1_170_394_Open_Text.style.display='none'; Codehighlighter1_170_394_Closed_Image.style.display='inline'; Codehighlighter1_170_394_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_170_394_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_170_394_Closed_Text.style.display='none'; Codehighlighter1_170_394_Open_Image.style.display='inline'; Codehighlighter1_170_394_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_170_394_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_170_394_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;s&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">hello</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char&nbsp;c ;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;d[]&nbsp;&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">hello</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;r[</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">];<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;func(r);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;&#8220;sizeof s :&#8221;&lt;&lt;size</span><span style="COLOR: #0000ff">of</span><span style="COLOR: #000000">(s)</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;&lt;"sizeof c" &lt;&lt;sizeof(c)&lt;&lt;endl<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">sizeof&nbsp;d[]&nbsp;=&nbsp;hello&nbsp;:&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(d)&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl&nbsp;<br><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">sizeof&nbsp;t&nbsp;:</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(t)&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">sizeof&nbsp;char&nbsp;r[100]&nbsp;:&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(r)&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<p><br>再帖转载来的6条理论：<br><br>sizeof操作符的结果类型是size_t，它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。<br><br>　<span style="COLOR: #993300">　 1、若操作数具有类型char、unsigned char或signed char，其结果等于1。<br></span><br>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ANSI C正式规定字符类型为1字节。<br><br><span style="COLOR: #993300">　　 2、int、unsigned int 、short int、unsigned short 、long int 、unsigned long 、float、double、long double类型的sizeof 在ANSI C中没有具体规定，大小依赖于实现，一般可能分别为4、4、2、2、4、4、4、8、10。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;sizeof(c) = 1;<br><br>　<span style="COLOR: #993300">　 3、当操作数是指针时，sizeof依赖于编译器。例如Microsoft C/C++7.0中，near类指针字节数为2，far、huge类指针字节数为4。一般Unix的指针字节数为4。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#000000>对于示例程序中的sizeof s，根据第3条，s是个字符串的指针，输出为&nbsp;&nbsp; sizeof s&nbsp;:4</font><br><br><br></span><span style="COLOR: #993300">　　 4、当操作数具有数组类型时，其结果是数组的总字节数。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#000000>对于sizeof d[] ，根据第4条，d是数组类型，返回的是数组的字节数再加上末尾的null一字节，sizeof d[] = hello : 6</font><br><br></span><br>　　 <span style="COLOR: #993300">5、联合类型操作数的sizeof是其最大字节成员的字节数。结构类型操作数的sizeof是这种类型对象的总字节数，包括任何垫补在内。<br></span><br>　　&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 让我们看如下结构：<br><br>　　&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;struct {char b; double x;} a;<br><br>　　&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 在某些机器上sizeof（a）=12，而一般sizeof（char）+ sizeof（double）=9。<br><br>　　&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 这是因为编译器在考虑对齐问题时，在结构中插入空位以控制各成员对象的地址对齐。如double类型的结构成员x要放在被4整除的地址。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 对于sizeof t ，对齐后t的大小为20故输出结果为sizeof t :20<br><br><br><span style="COLOR: #ff0000">　　 6、如果操作数是函数中的数组形参或函数类型的形参，sizeof给出其指针的大小。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#000000>sizeof ch :4 </font><br></span><br></p>
<img src ="http://www.cppblog.com/zpeng/aggbug/122101.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zpeng/" target="_blank">小天狼星</a> 2010-08-03 21:06 <a href="http://www.cppblog.com/zpeng/archive/2010/08/03/122101.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>switch ,,,case逻辑的逆向</title><link>http://www.cppblog.com/zpeng/archive/2010/04/27/113709.html</link><dc:creator>小天狼星</dc:creator><author>小天狼星</author><pubDate>Tue, 27 Apr 2010 06:39:00 GMT</pubDate><guid>http://www.cppblog.com/zpeng/archive/2010/04/27/113709.html</guid><wfw:comment>http://www.cppblog.com/zpeng/comments/113709.html</wfw:comment><comments>http://www.cppblog.com/zpeng/archive/2010/04/27/113709.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/zpeng/comments/commentRss/113709.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zpeng/services/trackbacks/113709.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp; <br><br><br>下面是一段典型的switch...case 语句：</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"><span style="COLOR: #008080">&nbsp;1</span><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">042C969F&nbsp;&nbsp;&nbsp;&nbsp;83FD&nbsp;</span><span style="COLOR: #000000">03</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cmp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ebp,&nbsp;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;2</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96A2&nbsp;&nbsp;&nbsp;&nbsp;0F87&nbsp;</span><span style="COLOR: #000000">02010000</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;ja&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;042C97AA<br></span><span style="COLOR: #008080">&nbsp;3</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96A8&nbsp;&nbsp;&nbsp;&nbsp;FF24AD&nbsp;F8972C04&nbsp;&nbsp;jmp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dword&nbsp;ptr&nbsp;[ebp</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">42C97F8]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;js.042C96CB<br></span><span style="COLOR: #008080">&nbsp;4</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96AF&nbsp;&nbsp;&nbsp;&nbsp;8BCF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ecx,&nbsp;edi<br></span><span style="COLOR: #008080">&nbsp;5</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96B1&nbsp;&nbsp;&nbsp;&nbsp;2BCE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sub&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ecx,&nbsp;esi<br></span><span style="COLOR: #008080">&nbsp;6</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96B3&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">51</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;ecx<br></span><span style="COLOR: #008080">&nbsp;7</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96B4&nbsp;&nbsp;&nbsp;&nbsp;8B4C24&nbsp;</span><span style="COLOR: #000000">24</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ecx,&nbsp;dword&nbsp;ptr&nbsp;[esp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">24</span><span style="COLOR: #000000">]<br></span><span style="COLOR: #008080">&nbsp;8</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96B8&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">56</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;esi<br></span><span style="COLOR: #008080">&nbsp;9</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96B9&nbsp;&nbsp;&nbsp;&nbsp;8D9424&nbsp;</span><span style="COLOR: #000000">94000000</span><span style="COLOR: #000000">&nbsp;&nbsp;lea&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;edx,&nbsp;dword&nbsp;ptr&nbsp;[esp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">94</span><span style="COLOR: #000000">]<br></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96C0&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">52</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;edx<br></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96C1&nbsp;&nbsp;&nbsp;&nbsp;E8&nbsp;0A86F8FF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call&nbsp;&nbsp;&nbsp;&nbsp;04251CD0<br></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96C6&nbsp;&nbsp;&nbsp;&nbsp;E9&nbsp;E7000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;042C97B2<br></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96CB&nbsp;&nbsp;&nbsp;&nbsp;8BC7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eax,&nbsp;edi<br></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96CD&nbsp;&nbsp;&nbsp;&nbsp;2BC6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sub&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eax,&nbsp;esi<br></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96CF&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;eax<br></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96D0&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">56</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;esi<br></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96D1&nbsp;&nbsp;&nbsp;&nbsp;8D4C24&nbsp;</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lea&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ecx,&nbsp;dword&nbsp;ptr&nbsp;[esp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">]<br></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96D5&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">51</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;ecx<br></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96D6&nbsp;&nbsp;&nbsp;&nbsp;8D8C24&nbsp;</span><span style="COLOR: #000000">98000000</span><span style="COLOR: #000000">&nbsp;&nbsp;lea&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ecx,&nbsp;dword&nbsp;ptr&nbsp;[esp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">98</span><span style="COLOR: #000000">]<br></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96DD&nbsp;&nbsp;&nbsp;&nbsp;E8&nbsp;2EE6F8FF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call&nbsp;&nbsp;&nbsp;&nbsp;04257D10<br></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96E2&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">3958</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">18</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cmp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dword&nbsp;ptr&nbsp;[eax</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">18</span><span style="COLOR: #000000">],&nbsp;ebx<br></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96E5&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">72</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">05</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">short</span><span style="COLOR: #000000">&nbsp;042C96EC<br></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96E7&nbsp;&nbsp;&nbsp;&nbsp;8B40&nbsp;</span><span style="COLOR: #000000">04</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eax,&nbsp;dword&nbsp;ptr&nbsp;[eax</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">]<br></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96EA&nbsp;&nbsp;&nbsp;&nbsp;EB&nbsp;</span><span style="COLOR: #000000">03</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">short</span><span style="COLOR: #000000">&nbsp;042C96EF<br></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96EC&nbsp;&nbsp;&nbsp;&nbsp;83C0&nbsp;</span><span style="COLOR: #000000">04</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eax,&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">26</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96EF&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;eax<br></span><span style="COLOR: #008080">27</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96F0&nbsp;&nbsp;&nbsp;&nbsp;E8&nbsp;</span><span style="COLOR: #000000">06450400</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call&nbsp;&nbsp;&nbsp;&nbsp;0430DBFB<br></span><span style="COLOR: #008080">28</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96F5&nbsp;&nbsp;&nbsp;&nbsp;8B5424&nbsp;</span><span style="COLOR: #000000">28</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;edx,&nbsp;dword&nbsp;ptr&nbsp;[esp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">28</span><span style="COLOR: #000000">]<br></span><span style="COLOR: #008080">29</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96F9&nbsp;&nbsp;&nbsp;&nbsp;83C4&nbsp;</span><span style="COLOR: #000000">04</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;esp,&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">30</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C96FC&nbsp;&nbsp;&nbsp;&nbsp;395C24&nbsp;</span><span style="COLOR: #000000">40</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cmp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dword&nbsp;ptr&nbsp;[esp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">40</span><span style="COLOR: #000000">],&nbsp;ebx<br></span><span style="COLOR: #008080">31</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9700&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">8902</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dword&nbsp;ptr&nbsp;[edx],&nbsp;eax<br></span><span style="COLOR: #008080">32</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9702&nbsp;&nbsp;&nbsp;&nbsp;0F82&nbsp;AA000000&nbsp;&nbsp;&nbsp;&nbsp;jb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;042C97B2<br></span><span style="COLOR: #008080">33</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9708&nbsp;&nbsp;&nbsp;&nbsp;8B4424&nbsp;2C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eax,&nbsp;dword&nbsp;ptr&nbsp;[esp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">2C]<br></span><span style="COLOR: #008080">34</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C970C&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;eax<br></span><span style="COLOR: #008080">35</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C970D&nbsp;&nbsp;&nbsp;&nbsp;E8&nbsp;F8330400&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call&nbsp;&nbsp;&nbsp;&nbsp;0430CB0A<br></span><span style="COLOR: #008080">36</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9712&nbsp;&nbsp;&nbsp;&nbsp;83C4&nbsp;</span><span style="COLOR: #000000">04</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;esp,&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">37</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9715&nbsp;&nbsp;&nbsp;&nbsp;E9&nbsp;</span><span style="COLOR: #000000">98000000</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;042C97B2<br></span><span style="COLOR: #008080">38</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C971A&nbsp;&nbsp;&nbsp;&nbsp;8BCF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ecx,&nbsp;edi<br></span><span style="COLOR: #008080">39</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C971C&nbsp;&nbsp;&nbsp;&nbsp;2BCE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sub&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ecx,&nbsp;esi<br></span><span style="COLOR: #008080">40</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C971E&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">51</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;ecx<br></span><span style="COLOR: #008080">41</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C971F&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">56</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;esi<br></span><span style="COLOR: #008080">42</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9720&nbsp;&nbsp;&nbsp;&nbsp;8D5424&nbsp;4C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lea&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;edx,&nbsp;dword&nbsp;ptr&nbsp;[esp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">4C]<br></span><span style="COLOR: #008080">43</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9724&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">52</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;edx<br></span><span style="COLOR: #008080">44</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9725&nbsp;&nbsp;&nbsp;&nbsp;8D8C24&nbsp;</span><span style="COLOR: #000000">98000000</span><span style="COLOR: #000000">&nbsp;&nbsp;lea&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ecx,&nbsp;dword&nbsp;ptr&nbsp;[esp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">98</span><span style="COLOR: #000000">]<br></span><span style="COLOR: #008080">45</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C972C&nbsp;&nbsp;&nbsp;&nbsp;E8&nbsp;DFE5F8FF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call&nbsp;&nbsp;&nbsp;&nbsp;04257D10<br></span><span style="COLOR: #008080">46</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9731&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">3958</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">18</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cmp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dword&nbsp;ptr&nbsp;[eax</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">18</span><span style="COLOR: #000000">],&nbsp;ebx<br></span><span style="COLOR: #008080">47</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9734&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">72</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">05</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">short</span><span style="COLOR: #000000">&nbsp;042C973B<br></span><span style="COLOR: #008080">48</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9736&nbsp;&nbsp;&nbsp;&nbsp;8B40&nbsp;</span><span style="COLOR: #000000">04</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eax,&nbsp;dword&nbsp;ptr&nbsp;[eax</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">]<br></span><span style="COLOR: #008080">49</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9739&nbsp;&nbsp;&nbsp;&nbsp;EB&nbsp;</span><span style="COLOR: #000000">03</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">short</span><span style="COLOR: #000000">&nbsp;042C973E<br></span><span style="COLOR: #008080">50</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C973B&nbsp;&nbsp;&nbsp;&nbsp;83C0&nbsp;</span><span style="COLOR: #000000">04</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eax,&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">51</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C973E&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;eax<br></span><span style="COLOR: #008080">52</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C973F&nbsp;&nbsp;&nbsp;&nbsp;E8&nbsp;B7440400&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call&nbsp;&nbsp;&nbsp;&nbsp;0430DBFB<br></span><span style="COLOR: #008080">53</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9744&nbsp;&nbsp;&nbsp;&nbsp;8B4C24&nbsp;1C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ecx,&nbsp;dword&nbsp;ptr&nbsp;[esp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1C]<br></span><span style="COLOR: #008080">54</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9748&nbsp;&nbsp;&nbsp;&nbsp;83C4&nbsp;</span><span style="COLOR: #000000">04</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;esp,&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">55</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C974B&nbsp;&nbsp;&nbsp;&nbsp;395C24&nbsp;5C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cmp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dword&nbsp;ptr&nbsp;[esp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">5C],&nbsp;ebx<br></span><span style="COLOR: #008080">56</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C974F&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">8901</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dword&nbsp;ptr&nbsp;[ecx],&nbsp;eax<br></span><span style="COLOR: #008080">57</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9751&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">72</span><span style="COLOR: #000000">&nbsp;5F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">short</span><span style="COLOR: #000000">&nbsp;042C97B2<br></span><span style="COLOR: #008080">58</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9753&nbsp;&nbsp;&nbsp;&nbsp;8B5424&nbsp;</span><span style="COLOR: #000000">48</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;edx,&nbsp;dword&nbsp;ptr&nbsp;[esp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">48</span><span style="COLOR: #000000">]<br></span><span style="COLOR: #008080">59</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9757&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">52</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;edx<br></span><span style="COLOR: #008080">60</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9758&nbsp;&nbsp;&nbsp;&nbsp;E8&nbsp;AD330400&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call&nbsp;&nbsp;&nbsp;&nbsp;0430CB0A<br></span><span style="COLOR: #008080">61</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C975D&nbsp;&nbsp;&nbsp;&nbsp;83C4&nbsp;</span><span style="COLOR: #000000">04</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;esp,&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">62</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9760&nbsp;&nbsp;&nbsp;&nbsp;EB&nbsp;</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">short</span><span style="COLOR: #000000">&nbsp;042C97B2<br></span><span style="COLOR: #008080">63</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9762&nbsp;&nbsp;&nbsp;&nbsp;8BC7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eax,&nbsp;edi<br></span><span style="COLOR: #008080">64</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9764&nbsp;&nbsp;&nbsp;&nbsp;2BC6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sub&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eax,&nbsp;esi<br></span><span style="COLOR: #008080">65</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9766&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;eax<br></span><span style="COLOR: #008080">66</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9767&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">56</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;esi<br></span><span style="COLOR: #008080">67</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9768&nbsp;&nbsp;&nbsp;&nbsp;8D4C24&nbsp;</span><span style="COLOR: #000000">68</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lea&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ecx,&nbsp;dword&nbsp;ptr&nbsp;[esp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">68</span><span style="COLOR: #000000">]<br></span><span style="COLOR: #008080">68</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C976C&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">51</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;ecx<br></span><span style="COLOR: #008080">69</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C976D&nbsp;&nbsp;&nbsp;&nbsp;8D8C24&nbsp;</span><span style="COLOR: #000000">98000000</span><span style="COLOR: #000000">&nbsp;&nbsp;lea&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ecx,&nbsp;dword&nbsp;ptr&nbsp;[esp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">98</span><span style="COLOR: #000000">]<br></span><span style="COLOR: #008080">70</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9774&nbsp;&nbsp;&nbsp;&nbsp;E8&nbsp;97E5F8FF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call&nbsp;&nbsp;&nbsp;&nbsp;04257D10<br></span><span style="COLOR: #008080">71</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9779&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">3958</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">18</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cmp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dword&nbsp;ptr&nbsp;[eax</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">18</span><span style="COLOR: #000000">],&nbsp;ebx<br></span><span style="COLOR: #008080">72</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C977C&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">72</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">05</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">short</span><span style="COLOR: #000000">&nbsp;042C9783<br></span><span style="COLOR: #008080">73</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C977E&nbsp;&nbsp;&nbsp;&nbsp;8B40&nbsp;</span><span style="COLOR: #000000">04</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eax,&nbsp;dword&nbsp;ptr&nbsp;[eax</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">]<br></span><span style="COLOR: #008080">74</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9781&nbsp;&nbsp;&nbsp;&nbsp;EB&nbsp;</span><span style="COLOR: #000000">03</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">short</span><span style="COLOR: #000000">&nbsp;042C9786<br></span><span style="COLOR: #008080">75</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9783&nbsp;&nbsp;&nbsp;&nbsp;83C0&nbsp;</span><span style="COLOR: #000000">04</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eax,&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">76</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9786&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;eax<br></span><span style="COLOR: #008080">77</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9787&nbsp;&nbsp;&nbsp;&nbsp;E8&nbsp;6F440400&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call&nbsp;&nbsp;&nbsp;&nbsp;0430DBFB<br></span><span style="COLOR: #008080">78</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C978C&nbsp;&nbsp;&nbsp;&nbsp;8B5424&nbsp;</span><span style="COLOR: #000000">20</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;edx,&nbsp;dword&nbsp;ptr&nbsp;[esp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">20</span><span style="COLOR: #000000">]<br></span><span style="COLOR: #008080">79</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9790&nbsp;&nbsp;&nbsp;&nbsp;83C4&nbsp;</span><span style="COLOR: #000000">04</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;esp,&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">80</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9793&nbsp;&nbsp;&nbsp;&nbsp;395C24&nbsp;</span><span style="COLOR: #000000">78</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cmp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dword&nbsp;ptr&nbsp;[esp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">78</span><span style="COLOR: #000000">],&nbsp;ebx<br></span><span style="COLOR: #008080">81</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9797&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">8902</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dword&nbsp;ptr&nbsp;[edx],&nbsp;eax<br></span><span style="COLOR: #008080">82</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C9799&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">72</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">17</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">short</span><span style="COLOR: #000000">&nbsp;042C97B2<br></span><span style="COLOR: #008080">83</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C979B&nbsp;&nbsp;&nbsp;&nbsp;8B4424&nbsp;</span><span style="COLOR: #000000">64</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eax,&nbsp;dword&nbsp;ptr&nbsp;[esp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">64</span><span style="COLOR: #000000">]<br></span><span style="COLOR: #008080">84</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C979F&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;eax<br></span><span style="COLOR: #008080">85</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C97A0&nbsp;&nbsp;&nbsp;&nbsp;E8&nbsp;</span><span style="COLOR: #000000">65330400</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call&nbsp;&nbsp;&nbsp;&nbsp;0430CB0A<br></span><span style="COLOR: #008080">86</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C97A5&nbsp;&nbsp;&nbsp;&nbsp;83C4&nbsp;</span><span style="COLOR: #000000">04</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;esp,&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">87</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C97A8&nbsp;&nbsp;&nbsp;&nbsp;EB&nbsp;</span><span style="COLOR: #000000">08</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">short</span><span style="COLOR: #000000">&nbsp;042C97B2<br></span><span style="COLOR: #008080">88</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C97AA&nbsp;&nbsp;&nbsp;&nbsp;C74424&nbsp;</span><span style="COLOR: #000000">14</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">000000</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dword&nbsp;ptr&nbsp;[esp</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">14</span><span style="COLOR: #000000">],&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">89</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>042C97B2&nbsp;&nbsp;&nbsp;&nbsp;83C5&nbsp;</span><span style="COLOR: #000000">01</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ebp,&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">90</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">91</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<img src ="http://www.cppblog.com/zpeng/aggbug/113709.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zpeng/" target="_blank">小天狼星</a> 2010-04-27 14:39 <a href="http://www.cppblog.com/zpeng/archive/2010/04/27/113709.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转载：unicode 相关的函数 </title><link>http://www.cppblog.com/zpeng/archive/2010/01/29/106695.html</link><dc:creator>小天狼星</dc:creator><author>小天狼星</author><pubDate>Fri, 29 Jan 2010 02:38:00 GMT</pubDate><guid>http://www.cppblog.com/zpeng/archive/2010/01/29/106695.html</guid><wfw:comment>http://www.cppblog.com/zpeng/comments/106695.html</wfw:comment><comments>http://www.cppblog.com/zpeng/archive/2010/01/29/106695.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zpeng/comments/commentRss/106695.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zpeng/services/trackbacks/106695.html</trackback:ping><description><![CDATA[&nbsp;Q &nbsp; UNICODE字符串如何显示 &nbsp; <br>&nbsp; A &nbsp; <br>&nbsp; 如果程序定义了_UNICODE宏直接用 &nbsp; <br>&nbsp; WCHAR &nbsp; *str=L"unicodestring"; &nbsp; <br>&nbsp; TextOut(0,0，str); &nbsp; <br>&nbsp; 否则就需要转换类型 &nbsp; <br>&nbsp; #include &nbsp; &lt;comdef.h&gt; &nbsp; <br>&nbsp; WCHAR &nbsp; *str=L"unicodestring"; &nbsp; <br>&nbsp; bstr_t &nbsp; str1=str; &nbsp; <br>&nbsp; TextOut(0,0，(char*)str1); &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; Q &nbsp; 如何实现ANSI和UNICODE的相互转换 &nbsp; <br>&nbsp; A &nbsp; <br>&nbsp; 将ANSI转换到Unicode &nbsp; <br>&nbsp; (1)通过L这个宏来实现，例如: &nbsp; CLSIDFromProgID( &nbsp; L"MAPI.Folder",&amp;clsid); &nbsp; <br>&nbsp; (2)通过MultiByteToWideChar函数实现转换,例如: &nbsp; <br>&nbsp; char &nbsp; *szProgID &nbsp; = &nbsp; "MAPI.Folder"; &nbsp; <br>&nbsp; WCHAR &nbsp; szWideProgID[128]; &nbsp; <br>&nbsp; CLSID &nbsp; clsid; &nbsp; <br>&nbsp; long &nbsp; lLen &nbsp; = &nbsp; MultiByteToWideChar(CP_ACP,0,szProgID,strlen(szProgID),szWideProgID,sizeof(szWideProgID)); &nbsp; <br>&nbsp; szWideProgID[lLen] &nbsp; = &nbsp; '\0'; &nbsp; &nbsp; <br>&nbsp; (3)通过A2W宏来实现,例如: &nbsp; &nbsp; <br>&nbsp; USES_CONVERSION; &nbsp; &nbsp; <br>&nbsp; CLSIDFromProgID( &nbsp; A2W(szProgID),&amp;clsid); &nbsp; &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 将Unicode转换到ANSI &nbsp; <br>&nbsp; (1)使用WideCharToMultiByte,例如: &nbsp; <br>&nbsp; // &nbsp; 假设已经有了一个Unicode &nbsp; 串 &nbsp; wszSomeString... &nbsp; &nbsp; <br>&nbsp; char &nbsp; szANSIString &nbsp; [MAX_PATH]; &nbsp; &nbsp; <br>&nbsp; WideCharToMultiByte &nbsp; ( &nbsp; CP_ACP, &nbsp; WC_COMPOSITECHECK, &nbsp; wszSomeString, &nbsp; -1, &nbsp; szANSIString, &nbsp; sizeof(szANSIString), &nbsp; NULL, &nbsp; NULL &nbsp; ); &nbsp; &nbsp; <br>&nbsp; (2)使用W2A宏来实现,例如: &nbsp; <br>&nbsp; USES_CONVERSION; &nbsp; <br>&nbsp; pTemp=W2A(wszSomeString); &nbsp; &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; 注意在转换时可能存在的问题： &nbsp; <br>&nbsp; 因为ANSI转UNICODE,如果使用A2W或MultiByteToWideChar（第一个参数是CP_ACP)的话,是根据系统默认的转码表，把转入的ANSI字符串看作Multi-Bytes字符串处理的，如果是中文（中文windows默认就是中文），一个大于0x87的byte可能和下一byte一起被看作一个汉字，然后根据汉字的Unicode编码转换为相同的Unicode汉字，如果找不到相应的编码，一般就用一个默认的字符来取代它（一般是问号&#8220;？&#8221;）,由此看，如果随便把一段数据给他转，转化很复杂而且极可能不可逆，而且你加密过的ANSI码是相当混乱的有很多〉0x87的byte,转换就变得不可逆了。 &nbsp; <br>&nbsp; 建议自己直接就这样写： &nbsp; <br>&nbsp; CHAR &nbsp; lpANSI[COUNT]; &nbsp; <br>&nbsp; WCHAR &nbsp; lpUnicode[COUNT]; &nbsp; <br>&nbsp; int &nbsp; i &nbsp; = &nbsp; 0; &nbsp; &nbsp; <br>&nbsp; while(lpANSI[i] &nbsp; != &nbsp; '\0' &nbsp; ) &nbsp; { &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; lpUnicode[i] &nbsp; = &nbsp; (WCHAR)lpANSI[i]; &nbsp; <br>&nbsp; } &nbsp; <br>&nbsp; lpUnicode[i] &nbsp; = &nbsp; L'\0'; &nbsp; <br>&nbsp; 然后按相同的方法转回来，因为对于0~0x87的ANSI字符串，对应的Unicode码就是相同的16位值，至于其他的，你的字符串反正加了密，没必要转换成显示出来是一样的字符，就按同样的方法处理了，其实如果中间的字符串不用显示或别的，直接reutrn &nbsp; (LPWSTR)lpANSI;过去也可以, &nbsp; 反正接受的时候自己清楚就可以了。 &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; Q &nbsp; 如何让程序支持UNICODE &nbsp; &nbsp; <br>&nbsp; A &nbsp; &nbsp; <br>&nbsp; NT系统的内核是unicode代码,通常vc分创建的工程默认都是ansi代码（可以兼容win9x）,在nt下ansi程式在调用windows &nbsp; API的时系统实际又进行了一次ansi到unicode的代码转化,如MoveWindowA实际上又调用MoveWindowW.如果以我们的程序不考虑win9x(早晚是明日黄花)的话,直接用unicode编译，那么程式的代码执行效率一定能增色不少.具体: &nbsp; <br>&nbsp; (0).在vc编译选项上,在vc7.0以上在工程的属性页中的&#8220;字符集&#8221;选上"使用 &nbsp; Unicode &nbsp; 字符集"即可，在vc6.0下可能麻烦一点，得先把vc运行库的unicode版本复制到vc路径下,一般都是和xxx.lib的ansi对应xxxU.lib,默认装vc时是不会装的，将工程属性 &nbsp; <br>&nbsp; (0).1.改语言定义: &nbsp; <br>&nbsp; 在project &nbsp; settings的"C++"页中的"preprocessor &nbsp; definitions"中改_MBCS为_UNICODE &nbsp; <br>&nbsp; (0).2.改入口函数: &nbsp; <br>&nbsp; 在"link"页中的"project &nbsp; Options"加入/entry:"wWinMainCRTStartup"即可. &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; (1)在代码上,处理字符中的多用TCHAR.H中的宏,如strcpy用_tcscpy代替,用TCHAR代char, &nbsp; <br>&nbsp; 用TCHAR &nbsp; m_mystr[]=_T("xxxx")代替 &nbsp; char &nbsp; m_mystr[]="xxxx"; &nbsp; <br>&nbsp; (2)注意调试UNICODE程序时，需要在安装时VC选择所有选项，否则会缺少动态库和相应的.lib文件 &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; Q &nbsp; 如何取得一个既包含单字节字符又包含双字节字符的字符串的字符个数？ &nbsp; <br>&nbsp; A &nbsp; <br>&nbsp; 可以调用Microsoft &nbsp; Visual &nbsp; C++的运行期库包含函数_mbslen来操作多字节（既包括单字节也包括双字节）字符串。 &nbsp; <br>&nbsp; 调用strlen函数，无法真正了解字符串中究竟有多少字符，它只能告诉你到达结尾的0之前有多少个字节。 &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; Q &nbsp; 如何对DBCS（双字节字符集）字符串进行操作？ &nbsp; <br>&nbsp; A &nbsp; <br>&nbsp; 函数 &nbsp; 描述 &nbsp; <br>&nbsp; PTSTR &nbsp; CharNext &nbsp; （ &nbsp; LPCTSTR &nbsp; ）; &nbsp; 返回字符串中下一个字符的地址 &nbsp; <br>&nbsp; PTSTR &nbsp; CharPrev &nbsp; （ &nbsp; LPCTSTR, &nbsp; LPCTSTR &nbsp; ）； &nbsp; 返回字符串中上一个字符的地址 &nbsp; <br>&nbsp; BOOL &nbsp; IsDBCSLeadByte( &nbsp; BYTE &nbsp; )； &nbsp; 如果该字节是DBCS字符的第一个字节，则返回非0值 &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; Q &nbsp; 为什么要使用Unicode？ &nbsp; <br>&nbsp; A &nbsp; <br>&nbsp; (1) &nbsp; 可以很容易地在不同语言之间进行数据交换。 &nbsp; <br>&nbsp; (2) &nbsp; 使你能够分配支持所有语言的单个二进制.exe文件或DLL文件。 &nbsp; <br>&nbsp; (3) &nbsp; 提高应用程序的运行效率。 &nbsp; <br>&nbsp; Windows &nbsp; 2000是使用Unicode从头进行开发的，如果调用任何一个Windows函数并给它传递一个ANSI字符串，那么系统首先要将字符串转换成Unicode，然后将Unicode字符串传递给操作系统。如果希望函数返回ANSI字符串，系统就会首先将Unicode字符串转换成ANSI字符串，然后将结果返回给你的应用程序。进行这些字符串的转换需要占用系统的时间和内存。通过从头开始用Unicode来开发应用程序，就能够使你的应用程序更加有效地运行。 &nbsp; <br>&nbsp; Windows &nbsp; CE &nbsp; 本身就是使用Unicode的一种操作系统，完全不支持ANSI &nbsp; Windows函数 &nbsp; <br>&nbsp; Windows &nbsp; 98 &nbsp; 只支持ANSI，只能为ANSI开发应用程序。 &nbsp; <br>&nbsp; Microsoft公司将COM从16位Windows转换成Win32时，公司决定需要字符串的所有COM接口方法都只能接受Unicode字符串。 &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; Q &nbsp; 如何编写Unicode源代码？ &nbsp; <br>&nbsp; A &nbsp; <br>&nbsp; Microsoft公司为Unicode设计了WindowsAPI，这样，可以尽量减少代码的影响。实际上，可以编写单个源代码文件，以便使用或者不使用Unicode来对它进行编译。只需要定义两个宏（UNICODE和_UNICODE），就可以修改然后重新编译该源文件。 &nbsp; <br>&nbsp; _UNICODE宏用于C运行期头文件，而UNICODE宏则用于Windows头文件。当编译源代码模块时，通常必须同时定义这两个宏。 &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; Q &nbsp; Windows定义的Unicode数据类型有哪些？ &nbsp; <br>&nbsp; A &nbsp; <br>&nbsp; 数据类型 &nbsp; 说明 &nbsp; <br>&nbsp; WCHAR &nbsp; Unicode字符 &nbsp; <br>&nbsp; PWSTR &nbsp; 指向Unicode字符串的指针 &nbsp; <br>&nbsp; PCWSTR &nbsp; 指向一个恒定的Unicode字符串的指针 &nbsp; <br>&nbsp; 对应的ANSI数据类型为CHAR，LPSTR和LPCSTR。 &nbsp; <br>&nbsp; ANSI/Unicode通用数据类型为TCHAR，PTSTR,LPCTSTR。 &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; Q &nbsp; 如何对Unicode进行操作？ &nbsp; <br>&nbsp; A &nbsp; <br>&nbsp; 字符集 &nbsp; 特性 &nbsp; 实例 &nbsp; <br>&nbsp; ANSI &nbsp; 操作函数以str开头 &nbsp; strcpy &nbsp; <br>&nbsp; Unicode &nbsp; 操作函数以wcs开头 &nbsp; wcscpy &nbsp; <br>&nbsp; MBCS &nbsp; 操作函数以_mbs开头 &nbsp; _mbscpy &nbsp; <br>&nbsp; ANSI/Unicode &nbsp; 操作函数以_tcs开头 &nbsp; _tcscpy（C运行期库） &nbsp; <br>&nbsp; ANSI/Unicode &nbsp; 操作函数以lstr开头 &nbsp; lstrcpy（Windows函数） &nbsp; <br>&nbsp; 所有新的和未过时的函数在Windows2000中都同时拥有ANSI和Unicode两个版本。ANSI版本函数结尾以A表示；Unicode版本函数结尾以W表示。Windows会如下定义： &nbsp; <br>&nbsp; #ifdef &nbsp; UNICODE &nbsp; <br>&nbsp; #define &nbsp; CreateWindowEx &nbsp; CreateWindowExW &nbsp; <br>&nbsp; #else &nbsp; <br>&nbsp; #define &nbsp; CreateWindowEx &nbsp; CreateWindowExA &nbsp; <br>&nbsp; #endif &nbsp; // &nbsp; !UNICODE 
<img src ="http://www.cppblog.com/zpeng/aggbug/106695.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zpeng/" target="_blank">小天狼星</a> 2010-01-29 10:38 <a href="http://www.cppblog.com/zpeng/archive/2010/01/29/106695.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转载]关于windows消息分流器</title><link>http://www.cppblog.com/zpeng/archive/2010/01/27/106565.html</link><dc:creator>小天狼星</dc:creator><author>小天狼星</author><pubDate>Wed, 27 Jan 2010 15:53:00 GMT</pubDate><guid>http://www.cppblog.com/zpeng/archive/2010/01/27/106565.html</guid><wfw:comment>http://www.cppblog.com/zpeng/comments/106565.html</wfw:comment><comments>http://www.cppblog.com/zpeng/archive/2010/01/27/106565.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zpeng/comments/commentRss/106565.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zpeng/services/trackbacks/106565.html</trackback:ping><description><![CDATA[<div class=g_blog_list>
<div class="g_t_center g_c_pdin g_p_center c07 content" id=blogtext_fks_085068093084082067093085094095087087084070081095085065>
<div class=ns_content>
<p>在Jeffrey的Error Show程序作者自定义了一段宏</p>
<p>#define chHANDLE_DLGMSG(hWnd, message, fn)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \<br>&nbsp;&nbsp; case (message): return (SetDlgMsgResult(hWnd, uMsg,&nbsp;&nbsp;&nbsp;&nbsp; \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HANDLE_##message((hWnd), (wParam), (lParam), (fn))))</p>
<p>HANDLE_##message((hWnd), (wParam), (lParam), (fn))是借用了windows.h里面的</p>
<p>#define HANDLE_MSG(hwnd, message, fn) <br>case (message): return HANDLE_##message((hwnd), (wParam), (lParam), (fn))</p>
<p>如果message是ＷＭ＿ＣＲＥＡＴ的话，这个应该是</p>
<p>&nbsp;HANDLE_WM_CREATE((hwnd), (wParam), (lParam), (Cls_OnCreate))</p>
<p>＃define HANDLE_WM_CREATE(hwnd, wParam, lParam, fn) \<br>&nbsp;&nbsp;&nbsp; ((fn)((hwnd), (LPCREATESTRUCT)(lParam)) ? 0L : (LRESULT)-1L)</p>
<p>那么宏展开为：return Cls_OnCreate(hwnd, (LPCREATESTRUCT)(lParam) )? 0L : (LRESULT)-1L;</p>
<p><br><br>但是在对话框消息处理中,对话框过程函数应该在处理了消息的情况下返回TRUE，如果没有处理，则返回FALSE。如果对话框过程返回了FALSE，那么对话框管理器为这条消息准备默认的对话操作。如果对话框处理了一个需要特定返回值的消息，则对话框的返回值应该被设置为调用SetWindowLong后的返回值,这些特殊消息有:</p>
<p>? WM_CHARTOITEM <br>? WM_COMPAREITEM <br>? WM_CTLCOLORBTN <br>? WM_CTLCOLORDLG <br>? WM_CTLCOLOREDIT <br>? WM_CTLCOLORLISTBOX <br>? WM_CTLCOLORSCROLLBAR <br>? WM_CTLCOLORSTATIC <br>? <font color=#ff0000>WM_INITDIALOG</font> <br>? WM_QUERYDRAGICON <br>? WM_VKEYTOITEM</p>
<p>所以在处理<font color=#ff0000>WM_INITDIALOG</font> 时,我们不能单纯的调用消息分流器.</p>
<p>而在处理ＷＭ＿ＣＯＭＭＡＮＤ中，从windowsx.h可以看到:</p>
<p>/* void Cls_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) */<br>#define HANDLE_WM_COMMAND(hwnd, wParam, lParam, fn) \<br>&nbsp;&nbsp;&nbsp; ((fn)((hwnd), (int)(LOWORD(wParam)), (HWND)(lParam), (UINT)HIWORD(wParam)), 0L)</p>
<p>void Cls_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) </p>
<p>Cls_OnCommand由于是个void型的函数，是没有返回值的，因此windows默认这种消息处理过程必须返回一个0值，而返回0值不就表示我们的消息过程不处理这个消息,这是矛盾的,如果直接使用HANDLE_WM_COMMAND(hwnd, wParam, lParam,&nbsp; Dlg_OnCommand) ;按钮会没有反应,关闭也不行/所以可以使用使用下面的宏解决</p>
<p>#define&nbsp;&nbsp;&nbsp;&nbsp; SetDlgMsgResult(hwnd, msg, result) (( \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (msg) == WM_CTLCOLORMSGBOX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; || \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (msg) == WM_CTLCOLOREDIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; || \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (msg) == WM_CTLCOLORLISTBOX&nbsp;&nbsp;&nbsp;&nbsp; || \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (msg) == WM_CTLCOLORBTN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; || \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (msg) == WM_CTLCOLORDLG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; || \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (msg) == WM_CTLCOLORSCROLLBAR&nbsp;&nbsp; || \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (msg) == WM_CTLCOLORSTATIC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; || \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (msg) == WM_COMPAREITEM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; || \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (msg) == WM_VKEYTOITEM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; || \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (msg) == WM_CHARTOITEM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; || \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (msg) == WM_QUERYDRAGICON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; || \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (msg) == WM_INITDIALOG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \<br>&nbsp;&nbsp;&nbsp; ) ? (BOOL)(result) : (SetWindowLong((hwnd), DWL_MSGRESULT, (LPARAM)(LRESULT)(result)), TRUE))</p>
<p>#define chHANDLE_DLGMSG(hWnd, message, fn)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \<br>&nbsp;&nbsp; case (message): return (SetDlgMsgResult(hWnd, uMsg,&nbsp;&nbsp;&nbsp;&nbsp; \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HANDLE_##message((hWnd), (wParam), (lParam), (fn))))</p>
<p>从这两个宏可以得到,如果是特殊消息的话那么返回默认0,并设置说明消息处理,如果WM_COMMAND的话,那么返回SetWindowLong((hwnd), DWL_MSGRESULT, (LPARAM)(LRESULT)(result)), TRUE),一般为TRUE表明已经处理</p>
</div>
</div>
</div>
<img src ="http://www.cppblog.com/zpeng/aggbug/106565.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zpeng/" target="_blank">小天狼星</a> 2010-01-27 23:53 <a href="http://www.cppblog.com/zpeng/archive/2010/01/27/106565.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转载]汇编语言算术右移和逻辑右移的区别是什么？</title><link>http://www.cppblog.com/zpeng/archive/2010/01/15/105725.html</link><dc:creator>小天狼星</dc:creator><author>小天狼星</author><pubDate>Fri, 15 Jan 2010 03:23:00 GMT</pubDate><guid>http://www.cppblog.com/zpeng/archive/2010/01/15/105725.html</guid><wfw:comment>http://www.cppblog.com/zpeng/comments/105725.html</wfw:comment><comments>http://www.cppblog.com/zpeng/archive/2010/01/15/105725.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zpeng/comments/commentRss/105725.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zpeng/services/trackbacks/105725.html</trackback:ping><description><![CDATA[<p>1.汇编语言中的逻辑右移(SHR)是将各位依次右移指定位数，然后在左侧补0,算术右移(SAR)是将各位依次右移指定位数，然后在左侧用原符号位补齐。 <br><br>2.高级语言右移运算符（&gt;&gt;）是将一个数的二进位全部右移若干位,低位移出部分舍弃，左补0。<br>&nbsp;<br>3.高级语言右移和汇编语言中的逻辑右移功能一样，但不同于算术右移。 </p>
<img src ="http://www.cppblog.com/zpeng/aggbug/105725.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zpeng/" target="_blank">小天狼星</a> 2010-01-15 11:23 <a href="http://www.cppblog.com/zpeng/archive/2010/01/15/105725.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转载]vc++中的常用宏</title><link>http://www.cppblog.com/zpeng/archive/2009/12/21/103625.html</link><dc:creator>小天狼星</dc:creator><author>小天狼星</author><pubDate>Mon, 21 Dec 2009 05:54:00 GMT</pubDate><guid>http://www.cppblog.com/zpeng/archive/2009/12/21/103625.html</guid><wfw:comment>http://www.cppblog.com/zpeng/comments/103625.html</wfw:comment><comments>http://www.cppblog.com/zpeng/archive/2009/12/21/103625.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zpeng/comments/commentRss/103625.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zpeng/services/trackbacks/103625.html</trackback:ping><description><![CDATA[AND_CATCHAND_CATCH <br>AND_CATCH(exception_class,exception _object_point_name) <br>说明：<br><br>定义一个代码块，它用于获取废除当前TRY块中的附加异常类型。使用CATCH宏以获得一个异常类型，然后使用AND_CATCH宏获得随后的异常处理代码可以访问异常对象（若合适的话)已得到关于异常的特别原因的更多消息。在AND_CATCH块中调用THROW_LAST宏以便把处理过程移到下个外部异常框架。AND_CATCH可标记CATCH或AND_CATCH块的末尾。 <br><br>注释： <br>AND_CATCH块被定义成为一个C++作用域（由花括号来描述）。若用户在此作用域定义变量，那么记住他们只在此作用域中可以访问。他也用于exception_object_pointer_name变量。 <br><br>ASSERT <br>ASSERT(booleanExpression) <br>说明： <br>计算变量的值。如果结构的值为0，那么此宏便打印一个诊断消息并且成讯运行失败。如果条件为非0，那么什么也不做。 诊断消息的形式为： assertion failed in file in line 其中name是元文件名，num是源文件中运行失败的中断号。 在Release版中，ASSERT不计算表达式的值也就不中断程序。如果必须计算此表达式的值且不管环境如何那么用VERIFY代替ASSERT。 <br>注释： <br>ASSERT只能在Debug版中用 <br><br>ASSERT_VAILD <br>ASSERT_VAILD(pObject) <br>说明： <br>用于<a class=vLink1 id=vad_0 onmouseover="this.style.borderBottom='2px #FF3366 solid';var fxEvent=arguments[0];kwmouseover(this,0,fxEvent);" style="FONT-SIZE: 1em; CURSOR: hand; COLOR: #ff3366; BORDER-BOTTOM: #ff3366 1px dotted; TEXT-DECORATION: underline" onmouseout="this.style.borderBottom='1px #FF3366 dotted';kwmouseout(this,0)" href="http://action.vogate.com/c/c.php?r=http%3A//www.google.cn/search%3Fhl%3Dzh-CN%26newwindow%3D1%26q%3DVERIFY+c%252B%252B%26aq%3Df%26oq%3D&amp;aid=5546&amp;sid=6235007045041189&amp;click=1&amp;url=http%3A//www.whxinan.com&amp;v=0&amp;k=%u68C0%u6D4B&amp;s=http%3A//www.programfan.com/article/2898.html&amp;rn=89592" target=_blank name=0>检测</a>关于对象的内部状态的有效性。ASSERT_VALID调用此对象的AssertValid成员函数（把它们作为自己的变量来传递）。在Release版中ASSERT_VALID什么也不做。在DEBUG版中，他检查指针，以不同于NULL的方式进行检查，并调用对象自己的AssertValid成员函数。如果这些检测中有任何一个失败的话，那么他会以与ASSERT相同的方法显示一个警告的消息。 <br>注释： <br>此函数只在DEBUG版中有效。 <br><br>BEGIN_MESSAGE_MAP <br>BEGIN_MESSAGE_MAP(the class,baseclass) <br>说明： <br>使用BEGIN_MESSAGE_MAP开始用户消息映射的定义。在定义用户类函数的工具（.cpp）文件中，以BEGIN_MESSAGE_MAP宏开始消息映射，然后为每个消息处理函数增加宏项，接着以END_MESSAGE_MAP宏完成消息映射。 <br><br>CATCH <br>CATCH(exception_class,exception_object_pointer_name) <br>说明： <br>使用此用定义一个代码块，此代码用来获取当前TRY块中都一个异常类型。异常处理代码可以访问异常对象，如何合适的话，就会得到关于异常的特殊原因的更多消息。调用THROW_LAST宏以把处理过程一下一个外部异常框架，如果exception-class是类CExceptioon,那么会获取所有异常类型。用户可以使用CObject::IsKindOf成员函数以确定那个特别异常被排除。一种获取异常的最好方式是使用顺序的AND_CATCH语句，每个带一个不同的异常类型。此异常类型的指针由宏定义，用户不必定义。 <br>注释： <br>此CATCH块被定义作一个C++范围（由花括号描述）。如用户在此范围定义变量，那么它们只在吃范围内可以访问。他还可以用于异常对象的指针名。 <br><br>DEBUG_NEW <br>#define new DEBUG_NEW <br>说明： <br>帮助查找内存错误。用户在程序中使用DEBUG_NEW,用户通常使用new运算符来从堆上分配。在Debug模式下（但定义了一个DEBUG符号），DEBUG_NEW为它分配的每个对象记录文件名和行号。然后，在用户使用CMemoryState::DumpAllObjectSince成员函数时，每个以DEBUG_NEW分配的对象分配的地方显示出文件名和行号。 为了使用DEBUG_NEW,应在用户的资源文件中插入以下指令： #define new DEBUG_NEW 一旦用户插入本指令，预处理程序将在使用new的地方插入DEBUG_NEW，而MFC作其余的工作。但用户编译自己的程序的一个发行版时，DEBUG_NEW便进行简单的new操作，而且不产生文件名和行号消息。 <br><br>DECLARE_DYNAMIC <br>DECLARE_DYNAMIC(class_name) <br>说明： <br>但从CObject派生一个类时，此宏增加关于一个对象类的访问运行时间功能。把DECLARE_DYNAMIC宏加入类的头文件中，然后在全部需要访问词类对象的.CPP文件中都包含此模块。如果像所描述那样使用DELCARE_DYNAMIC和IMPLEMENT_DYNAMIC宏，那么用户便可使用RUNTIME_CLASS宏和CObject::IsKindOf函数以在运行时间决定对象类。如果DECLARE_DYNAMIC包含在类定义中，那么IMPLEMETN_DYNAMIC必须包含在类工具中。 <br><br>DECLARE_DYNCREATE <br>DECLARE_DYNCREATE(class_name) <br>说明： <br>使用DECLARE_DYNCRETE宏以便允许CObject派生类的对象在运行时刻自动建立。主机使用此功能自动建立新对象，例如，但它在串行化过程中从磁盘读一个对象时，文件及视图和框架窗应该支持动态建立，因为框架需要自动建立它。把DECLARE_DYNCREATE宏加入类的.H文件中，然后在全部需要访问此类对象的.CPP文件中包含这一模式。如果DECLARE_DYNCREATE包含在类定义中，那么IMPLEMENT_DYNCREATE必须包含在类工具中。 <br><br>DECLARE_MESSAGE_MAP <br>DECLARE_MESSAGE_MAP() <br>说明： <br>用户程序中的每个CCmdTarget派生类必须提供消息映射以处理消息。在类定义的末尾使用DECLARE_MESSAGE_MAP宏。接着，在定义类成员函数的.CPP文件中，使用BEGIN_MESSAGE_MAP宏，每个用户消息处理函数的宏项下面的列表以及END_MESSAGE_MAP宏。 <br>注释： <br>如果在DECLARE_MESSAGE_MAP之后定义任何一个成员，那么必须为他们指定一个新存取类型（公共的，私有的，保护的）。 <br><br>DECLARE_SERIAL <br>DECLARE_SERIAL(class_name) <br>说明： <br>DECLARE_SERIAL为一个可以串行化的CObject派生类产生必要的C++标题代码。串行化是把某个对象的内容从一个文件读出和写入一文件。在.H文件中使用DECLARE_SERIAL宏，接着在需要访问此类对象的全部.CPP文件中包含此文件。如果DECLARE_SERIAL包含在类定义中，那么IMPLEMENT_SERIAL必须包含在类工具中。DECLARE_SERIAL宏包含全部DECLARE_DYNAMIC,IMPLEMENT_DYCREATE的功能。 <br><br>END_CATCH <br>END_CATCH <br>说明： <br>标识最后的CATCH或AND_CATCH块的末尾。 <br><br>END_MESSAGE_MAP <br>END_MESSAGE_MAP <br>说明： <br>使用END_MESSAGE_MAP宏结束用户的消息映射定义 <br>IMPLEMENT_DYNAMIC <br>IMPLEMENT_DYNAMIC(class_name,base_class_name) <br>说明： <br>通过运行时在串行结构中为动态CObject派生类访问类名和位置来产生必要的C++代码。在.CPP文件中使用IMPLEMENT_DYNAMIC宏，接着一次链接结果对象代码 <br><br>IMPLEMENT_DYNCREATE <br>IMPLEMENT_DYNCREATE(class_name,base_class_name) <br>说明： <br>通过DECLARE_DYNCREATE宏来使用IMPLEMENT_DYNCREATE宏，以允许CObject派生类对象在运行时自动建立。主机使用此功能自动建立对象，例如，但它在串行化过程中从磁盘读去一个对象时，他在类工具里加入IMPLEMENT_DYNCREATE宏。若用户使用DECLARE_DYNCREATE和IMPLEMENT_DYNCREATE宏,那么接着使用RUNTIME_CLASS宏和CObject::IsKindOf成员函数以在运行时确定对象类。若declare_dyncreate包含在定义中，那么IMPLEMENT_DYNCREATE必须包含在类工具中。 <br><br>IMPLEMENT_SERIAL <br>IMPLEMENT_SERIAL(class_name,base_class_name,wSchema) <br>说明： <br>通过运行时在串行结构中动态CObject派生类访问类名和位置来建立必要的C++代码。在.CPP文件中使用IMPLEMENT_SERIAL宏，然后一次链接结果对象代码。 <br><br>ON_COMMAND <br>ON_COMMAND(id,memberFxn) <br>说明： <br>此宏通过ClassWizard或手工插入一个消息映射。它表明那个函数将从一个命令用户接口（例如一个菜单项或toolbar按钮）处理一个命令消息。当一个命令对象通过指定的ID接受到一个Windows WM_COMMAND消息时，ON_COMMAND将调用成员函数memberFxn处理此消息。在用户的消息映射中，对于每个菜单或加速器命令（必须被映射到一个消息处理函数）应该确实有一个ON_COMMAND宏语句。 <br><br>ON_CONTROL <br>ON_CONTROL(wNotifyCode,id,memberFxn) <br>说明： <br>表明哪个函数将处理一个常规控制表示消息。控制标识消息是那些从一个控制夫发送到母窗口的消息。 <br><br>ON_MESSAGE <br>ON_MESSAGE(message,memberFxn) <br>说明： <br>指明哪个函数将处理一用户定义消息。用户定义消息通常定义在WM_USER到0x7FF范围内。用户定义消息是那些不是标准Windows WM_MESSAGE消息的任何消息。在用户的消息映射中，每个必须被映射到一个消息处理函数。用户定义消息应该有一个ON_MESSAGE宏语句。 <br><br>ON_REGISTERED_MESSAGE <br>ON_REGISTERED_MESSAGE(nmessageVarible,memberFxn) <br>说明： <br>Windows的RegisterWindowsMesage函数用于定义一个新窗口消息，此消息保证在整个系统中是唯一的。此宏表明哪个函数处理已注册消息。变量nMessageViable应以NEAR修饰符来定义。 <br><br>ON_UPDATE_COMMAND_UI <br>ON_UPDATE_COMMAND_UI(id，memberFxn) <br>说明： <br>此宏通常通过ClassWizard被插入一个消息映射，以指明哪个函数将处理一个用户接口个更改命令消息。在用户的消息映射中，每个用户接口更改命令（比讯被映射到一个消息处理函数）应该有一个ON_UPDATE_COMMAND_UI宏语句。 <br><br>ON_VBXEVENT <br>ON_VBXEVENT(wNotifyCode,memberFxn) <br>说明： <br>此宏通常通过ClassWizard被插入一个消息映射，以指明哪个函数将处理一个来自VBX控制的消息。在用户的消息映射中每个被映射到一消息处理函数的VBX控制消息应该有一个宏语句。 <br><br>RUNTIME_CLASS <br>RUNTIME_CLASS(class_name) <br>说明： <br>使用此宏从c++类民众获取运行时类结构。RUNTIME_CLASS为由class_name指定的类返回一个指针到CRuntimeClass结构。只有以DECLARE_DYNAMIC,DECLARE_DYNCREATE或DECLARE_SERIAL定义的CObject派生类才返回到一个CRuntimeClass结构的指针。 <br><br>THROW <br>THROW(exception_object_pointer) <br>说明： <br>派出指定的异常。THROW中断程序的运行，把控制传递给用户程序中的相关的CATCH块。如果用户没有提供CATCH块，那么控制被传递到一个MFC模块，他打印出一个错误并终止运行。 <br><br>THROW_LAST <br>THROW_LAST() <br>说明： <br>此宏允许用户派出一个局部建立的异常。如果用户试图排除一个刚发现的异常，那么一般此异常将溢出并被删除。使用THROW_LAST,此异常被直接传送到下一个CATCH处理程序。 <br><br>TRACE <br>TRACE(exp) <br>说明： <br>把一个格式化字符串送到转储设备，例如，文件或调试监视器，而提供与printf相似的功能。同MS_DOS下C程序的printf一样，TRACE宏是一个在程序运行时跟踪变量值的方便形式。在DEBUG环境中，TRACE宏输出到afxDump。在Release版中他不做任何工作。 <br>注释： <br>此宏只在MFC的DEBUG版中有效。 <br><br>TRACE0 <br>TRACE0(exp) <br>说明： <br>与TRACE相似，但他把跟踪字符串放在代码段中，而不是DGROUP,因此使用少的DGROUP空间。TRACE0是一组跟踪宏的一个变体，这些宏可用于调试输出。这一组包括TRACE0,TRACE1,TRACE2和TRACE3,这些宏不同在于所取参数的数目不同。TRACE0只取一个格式化字符串并可用于简单文本消息。TRACE1取一格式化字符串加上一个变量——一个将转储的变量。同样，TRACE2,TRACE3分别取2个或3个参数（在格式化字符串之后）。如果用户以便以了应用程序的发行版，那么它只把数据转储到afxDump。 <br>注释： <br>此宏只在MFC的DEBUG中有效。 <br><br><br>TRACE1 <br>TRACE1(exp,param1) <br>说明： <br>参见TRACE0 <br><br>TRACE2 <br>TRACE2(exp,param1,param2) <br>说明： <br>参见TRACE0 <br><br>TRACE3 <br>TRACE3(exp,param1,param2,param3) <br>说明： <br><br>TRY <br>TRY <br>说明： <br>使用此宏建立一TRY块。一个TRY识别一个可排除异常的代码块。这些异常在随后的CATCH和AND_CATCH块处理。传递是允许的：异常可以传递一个外部TRY块，或者忽略它们或者使用THROW_LAST宏。 <br><br>VERIFY <br>VERIFY(booleanExpression) <br>说明： <br>在MFC的DEBUG版中，VERIFY宏计算它的变量值。 如果结果为0，那么宏打印一个诊断消息并中止程序。如果条件不为0，那么什么工作也不作。 诊断有如下形式： assertion failed in file in line 其中name是源文件的名字，num是在源文件中失败的中止行号。在MFC的Release版中，VERIFY计算表达式值但不打印或中止程序。例如：如果表达式是个函数调用，那么调用成功。 <br><br>
<img src ="http://www.cppblog.com/zpeng/aggbug/103625.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zpeng/" target="_blank">小天狼星</a> 2009-12-21 13:54 <a href="http://www.cppblog.com/zpeng/archive/2009/12/21/103625.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转载] C++嵌套类 </title><link>http://www.cppblog.com/zpeng/archive/2009/12/21/103615.html</link><dc:creator>小天狼星</dc:creator><author>小天狼星</author><pubDate>Mon, 21 Dec 2009 04:00:00 GMT</pubDate><guid>http://www.cppblog.com/zpeng/archive/2009/12/21/103615.html</guid><wfw:comment>http://www.cppblog.com/zpeng/comments/103615.html</wfw:comment><comments>http://www.cppblog.com/zpeng/archive/2009/12/21/103615.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zpeng/comments/commentRss/103615.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zpeng/services/trackbacks/103615.html</trackback:ping><description><![CDATA[<p>C++嵌套类 <br>1、从作用域的角度看，嵌套类被隐藏在外围类之中，该类名只能在外围类中使用。如果在外围类的作用域内使用该类名时，需要加名字限定。 <br></p>
<p>2、从访问权限的角度来看，嵌套类名与它的外围类的对象成员名具有相同的访问权限规则。不能访问嵌套类的对象中的私有成员函数，也不能对外围类的私有部分中的嵌套类建立对象。 <br><br>3、嵌套类中的成员函数可以在它的类体外定义。 </p>
<p>4、嵌套类中说明的成员不是外围类中对象的成员，反之亦然。嵌套类的成员函数对外围类的成员没有访问权，反之亦然。因此，在分析嵌套类&nbsp;&nbsp; 与&nbsp;&nbsp; 外围类的成员访问关系时，往往把嵌套类看作非嵌套类来处理。 由引可见，嵌套类仅仅是语法上的嵌入。<br><br>5、在嵌套类中说明的友元对外围类的成员没有访问权。 </p>
<p>6、如果嵌套类比较复杂，可以只在外围类中对嵌套类进行说明，关于嵌套的详细的内容可在外围类体外的文件域中进行定义。 <br></p>
<img src ="http://www.cppblog.com/zpeng/aggbug/103615.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zpeng/" target="_blank">小天狼星</a> 2009-12-21 12:00 <a href="http://www.cppblog.com/zpeng/archive/2009/12/21/103615.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>friend 友元</title><link>http://www.cppblog.com/zpeng/archive/2009/12/21/103614.html</link><dc:creator>小天狼星</dc:creator><author>小天狼星</author><pubDate>Mon, 21 Dec 2009 03:54:00 GMT</pubDate><guid>http://www.cppblog.com/zpeng/archive/2009/12/21/103614.html</guid><wfw:comment>http://www.cppblog.com/zpeng/comments/103614.html</wfw:comment><comments>http://www.cppblog.com/zpeng/archive/2009/12/21/103614.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zpeng/comments/commentRss/103614.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zpeng/services/trackbacks/103614.html</trackback:ping><description><![CDATA[<p>C++ primer一书中友元那节的题纲：<br>1.友元关系<br>2.使其他类的成员函数成为友元<br>3.友元声明与作用域<br>4.重载函数与友元关系&nbsp;<br></p>
<img src ="http://www.cppblog.com/zpeng/aggbug/103614.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zpeng/" target="_blank">小天狼星</a> 2009-12-21 11:54 <a href="http://www.cppblog.com/zpeng/archive/2009/12/21/103614.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>