﻿<?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++博客-YGFaith</title><link>http://www.cppblog.com/YGFaith/</link><description /><language>zh-cn</language><lastBuildDate>Mon, 13 Apr 2026 09:38:07 GMT</lastBuildDate><pubDate>Mon, 13 Apr 2026 09:38:07 GMT</pubDate><ttl>60</ttl><item><title>iPhone手机开发平台入门介绍和教程</title><link>http://www.cppblog.com/YGFaith/archive/2009/04/02/78754.html</link><dc:creator>YG</dc:creator><author>YG</author><pubDate>Thu, 02 Apr 2009 14:55:00 GMT</pubDate><guid>http://www.cppblog.com/YGFaith/archive/2009/04/02/78754.html</guid><wfw:comment>http://www.cppblog.com/YGFaith/comments/78754.html</wfw:comment><comments>http://www.cppblog.com/YGFaith/archive/2009/04/02/78754.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/YGFaith/comments/commentRss/78754.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/YGFaith/services/trackbacks/78754.html</trackback:ping><description><![CDATA[1． iPhone手机介绍 <br>首先需要了解和破解iPhone手机，下面一个帖子介绍很详细： <br>iPhone最权威 [入门] [破解] [扫盲] [资源] [修砖] 总汇帖 <br><a href="http://www.weiphone.com/thread-41690-1-1.html" target=_blank><u><font color=#108ac6>http://www.weiphone.com/thread-41690-1-1.html</font></u></a> <br><br>iPhone手机手册的中文翻译 <br><a href="http://down.tgbus.com/soft/16820.shtml" target=_blank><u><font color=#108ac6>http://down.tgbus.com/soft/16820.shtml</font></u></a> <br><br><br>2． Unix常见命令 <br>iPhone手机的操作系统是Mac OS X，内核是unix，所以可以iPhone手机上运行unix命令。 <br><a href="http://www.weiphone.com/thread-15894-1-1.html" target=_blank><u><font color=#108ac6>http://www.weiphone.com/thread-15894-1-1.html</font></u></a> <br><br>3． Windows平台上iPhone开发环境搭建 <br>见笔者的文章《Windows平台上iPhone基于cygwin开发环境的搭建方法》，文件链接： <br><a href="http://canco.javaeye.com/admin/blogs/199106" target=_blank><u><font color=#108ac6>http://canco.javaeye.com/admin/blogs/199106</font></u></a> <br><br>4． Toolchain和iPhone SDK <br>Toolchain与官方iPhone SDK的比较请见文章： <br>《比较官方iPhone SDK和开源工具链》，文章链接：<a href="http://www.cocoachina.com/index.php/archives/cocoachina_149.html" target=_blank><u><font color=#108ac6>http://www.cocoachina.com/index.php/archives/cocoachina_149.html</font></u></a> <br>iPhone SDK介绍和分析 <br>见西西河的AllenKids先生的2篇文章： <br>iPhoneSDK观察 - 舞姿飘忽，苹果的探戈 <br><a href="http://www.20ju.com/content/V19377.htm" target=_blank><u><font color=#108ac6>http://www.20ju.com/content/V19377.htm</font></u></a> <br>iPhone SDK 观察二：舞台宽广，才能跳得欢畅 <br><a href="http://www.cnbeta.com/articles/55055.htm" target=_blank><u><font color=#108ac6>http://www.cnbeta.com/articles/55055.htm</font></u></a> <br><br>iPhone SDK, Toolchain, Windows Mobile, SymbianOS S60的比较 <br><a href="http://www.rsslite.com/post/1889.html" target=_blank><u><font color=#108ac6>http://www.rsslite.com/post/1889.html</font></u></a> <br><br><br><br>iPhone用户界面指导原则 <br><a href="http://www.20ju.com/content/V22381.htm" target=_blank><u><font color=#108ac6>http://www.20ju.com/content/V22381.htm</font></u></a> <br><br>5． iPhone开发语言：Objective-C <br>iPhone原生程序开发语言主要是用Objective-C语言，如果你熟悉C/C++语言，则能很快掌握Objective-C。Objective-C语言主要要理解可变参数，Categories, Posing， Protocols等特性。 <br>Objective-C初學者指南（繁体） <br><a href="http://www.otierney.net/objective-c.html.zh-tw.big5" target=_blank><u><font color=#108ac6>http://www.otierney.net/objective-c.html.zh-tw.big5</font></u></a>Objective-C语法快速参考 <br><a href="http://www.cocoachina.com/index.php/archives/cocoachina_122.html" target=_blank><u><font color=#108ac6>http://www.cocoachina.com/index.php/archives/cocoachina_122.html</font></u></a> <br>Learn Objective-C <br><a href="http://cocoadevcentral.com/d/learn_objectivec/" target=_blank><u><font color=#108ac6>http://cocoadevcentral.com/d/learn_objectivec/</font></u></a> <br><br>The Objective-C 2.0 Programming Language <br><a href="http://developer.apple.com/iphone/" target=_blank><u><font color=#108ac6>http://developer.apple.com/iphone/</font></u></a>（注：需要注册为apple会员才可以下载） <br><br>6． iPhone开发书籍、文章和源代码 <br>由iPhone开发和破解领路人Jonathan Zdziarski著作，最最重要、最值得推荐和唯一的开发书籍《iPhone Open Application Development》，可通过google下载电子版。 <br><br><br>Creating an iPhone Application <br>iPhone OS Overview <br>iPhone OS Programming Guide <br>iPhone Human Interface Guidelines <br>Cocoa Fundamentals Guide <br><a href="http://developer.apple.com/iphone/" target=_blank><u><font color=#108ac6>http://developer.apple.com/iphone/</font></u></a>（注：需要注册为apple会员才可以下载） <br><br><br>Lucas Newman 的18页iPhone开发PDF教学 <br><a href="http://lucasnewman.com/phonedev.pdf" target=_blank><u><font color=#108ac6>http://lucasnewman.com/phonedev.pdf</font></u></a> <br><br>學習怎樣在 iPhone/iPod Touch 上開發自制遊戲全記錄 <br><a href="http://www.weiphone.com/thread-81192-1-2.html" target=_blank><u><font color=#108ac6>http://www.weiphone.com/thread-81192-1-2.html</font></u></a> <br><br>CocoaChina整理的开源iPhone程序不完全列表 <br><a href="http://www.cocoachina.com/index.php/archives/cocoachina_143.html" target=_blank><u><font color=#108ac6>http://www.cocoachina.com/index.php/archives/cocoachina_143.html</font></u></a> <br><br>几个源码例子 <br><a href="http://lucasnewman.com/phonedemos.zip" target=_blank><u><font color=#108ac6>http://lucasnewman.com/phonedemos.zip</font></u></a> <br><br><br><br>7． iPhone论坛和网站 <br>平果开发中文站－最好的中文iPhone开发网站！ <br><a href="http://www.cocoachina.com/" target=_blank><u><font color=#108ac6>http://www.cocoachina.com/</font></u></a> <br><br>苹果官方的开发网站： <br><a href="http://developer.apple.com/iphone/" target=_blank><u><font color=#108ac6>http://developer.apple.com/iphone/</font></u></a> <br><br>Weiphone <br><a href="http://www.weiphone.com/index.php" target=_blank><u><font color=#108ac6>http://www.weiphone.com/index.php</font></u></a> <br><br>苹果fans成立的网站： <br><a href="http://apple4.us/" target=_blank><u><font color=#108ac6>http://apple4.us/</font></u></a> <br>
<img src ="http://www.cppblog.com/YGFaith/aggbug/78754.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/YGFaith/" target="_blank">YG</a> 2009-04-02 22:55 <a href="http://www.cppblog.com/YGFaith/archive/2009/04/02/78754.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>The Standard C Library </title><link>http://www.cppblog.com/YGFaith/archive/2008/12/31/70846.html</link><dc:creator>YG</dc:creator><author>YG</author><pubDate>Wed, 31 Dec 2008 05:38:00 GMT</pubDate><guid>http://www.cppblog.com/YGFaith/archive/2008/12/31/70846.html</guid><wfw:comment>http://www.cppblog.com/YGFaith/comments/70846.html</wfw:comment><comments>http://www.cppblog.com/YGFaith/archive/2008/12/31/70846.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/YGFaith/comments/commentRss/70846.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/YGFaith/services/trackbacks/70846.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: The Standard C Library --------------经典的基础C的标志库函数是学习和使用C语言的基础,是编写经典C程序的基础,是学习其他计算机知识的基础.C标志库中一共包含了15个头文件:&lt;assert.h&gt; &lt;ctype.h&gt; &lt;stdio.h&gt; &lt;stdlib.h&gt; &lt;string.h&gt; &lt;li...&nbsp;&nbsp;<a href='http://www.cppblog.com/YGFaith/archive/2008/12/31/70846.html'>阅读全文</a><img src ="http://www.cppblog.com/YGFaith/aggbug/70846.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/YGFaith/" target="_blank">YG</a> 2008-12-31 13:38 <a href="http://www.cppblog.com/YGFaith/archive/2008/12/31/70846.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ACE在linux下的安装</title><link>http://www.cppblog.com/YGFaith/archive/2008/12/31/70845.html</link><dc:creator>YG</dc:creator><author>YG</author><pubDate>Wed, 31 Dec 2008 05:37:00 GMT</pubDate><guid>http://www.cppblog.com/YGFaith/archive/2008/12/31/70845.html</guid><wfw:comment>http://www.cppblog.com/YGFaith/comments/70845.html</wfw:comment><comments>http://www.cppblog.com/YGFaith/archive/2008/12/31/70845.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/YGFaith/comments/commentRss/70845.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/YGFaith/services/trackbacks/70845.html</trackback:ping><description><![CDATA[<p style="TEXT-INDENT: 2em">本文详细描述了在Linux操作系统上安装和配置&#8220;自适应通信环境(ACE)&#8221;的过程和注意事项。zCkLinux联盟</p>
<p style="TEXT-INDENT: 2em">文中的描述基于RedHat Linux 9操作系统和ACE 5.4版zCkLinux联盟</p>
<p style="TEXT-INDENT: 2em">准备工作：zCkLinux联盟</p>
<p style="TEXT-INDENT: 2em">1.确保你的Linux操作系统的开发环境(gcc、make&#8230;&#8230;)是完整且可用的。zCkLinux联盟</p>
<p style="TEXT-INDENT: 2em">2.在安装ACE的过程中，可能需要root权限，因此确保你拥有root帐户的密码。zCkLinux联盟</p>
<p style="TEXT-INDENT: 2em">3.对于典型的Redhat9系统，autoconf程序的版本可能过低，你需要首先升级它。zCkLinux联盟</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp; 升级的步骤如下：zCkLinux联盟 </p>
<ol dir=ltr>
    <li>在控制台中输入 autoconf -V，查看你的autoconf程序的版本
    <li>如果低于2.57g，你需要到<a href="http://www.gnu.org/software/autoconf/"></a><a href="http://www.gnu.org/software/autoconf/"><font color=#ffbc00>http://www.gnu.org/software/autoconf/</font></a></a />去下载最新版本的autoconf程序，目前autoconf程序的版本是2.59
    <li>根据tarball中的安装说明，编译并安装升级autoconf程序</li>
</ol>
<p>&#160;</p>
<p style="TEXT-INDENT: 2em">开始安装：zCkLinux联盟</p>
<p style="TEXT-INDENT: 2em">经过上面的准备工作，现在你已经具备了安装ACE的条件。下面开始正式的安装工作。zCkLinux联盟 </p>
<ol>
    <li>首先确定ACE的安装路径，并建立相应的目录。zCkLinux联盟
    <p>&#160;</p>
    <p style="TEXT-INDENT: 2em">这里，我们把ACE安装在/home/zhc/ace/的目录下，先执行zCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">mkdir /home/zhc/ace </p>
    <li>然后将获得的ACE源代码包解至该目录下。zCkLinux联盟
    <p>&#160;</p>
    <p style="TEXT-INDENT: 2em">tar zxvf ACE-5.4.tar.gz /home/zhc/ace </p>
    <li>这时，在ace的目录下会建立一个名为ACE_wrappers的子目录，ACE所有的源代码、工具、和例子都在这个目录中。zCkLinux联盟
    <p>&#160;</p>
    <p style="TEXT-INDENT: 2em">先进入该目录，执行zCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">cd /home/zhc/ace/ACE_wrapperszCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">然后建立一个子目录，用于存放ACE编译后的目标文件zCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">mkdir buildzCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">cd build </p>
    <li>接着,执行configure脚本，检查你的系统环境，配置并生成适合你的系统的Makefile文件。zCkLinux联盟
    <p>&#160;</p>
    <p style="TEXT-INDENT: 2em">在执行configure脚本时，可以加入许多配置选项，其详细说明可以参看ACE_wrappers目录下的ACE-INSTALL.html文件，zCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">对于Redhat9系统来说，不必加任何参数，ACE就可以很好的工作了。zCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">../configure </p>
    <li>在漫长的检查和配置之后，如果没有什么问题，你就可以开始编译了。zCkLinux联盟
    <p>&#160;</p>
    <p style="TEXT-INDENT: 2em">这一步很简单，执行zCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">makezCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">然后，泡一杯茶，静静的等待就行了。 </p>
    <li>如果编译顺利的通过(通常都会是这样的)，那么恭喜你，你已经成功了一大半了，下面要做的仅仅是以些配置工作而已。zCkLinux联盟
    <p>&#160;</p>
    <p style="TEXT-INDENT: 2em">接下来的工作是安装，这一步是可选的，目的是把编译生成的ACE的库文件、头文件和手册页等安装到/usr/local的相应目录中去，为了今后使用的方便，我建议你还是进行这一步，执行zCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">suzCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">root's passwordzCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">make install </p>
    <li>安装之后，我们就可以进行最后的配置工作了。zCkLinux联盟
    <p>&#160;</p>
    <p style="TEXT-INDENT: 2em">首先设置环境变量ACE_ROOT，执行zCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">setenv ACE_ROOT /home/zhc/ace/ACE_wrapperszCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">注意其中的路径要根据你的实际情况而定zCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">如果你不想每次都手工设定路径，可以编辑你的bash的配置文件，执行zCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">cdzCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">vi .bash_profilezCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">在其中填加如下两行zCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">ACE_ROOT=/home/work/research/ace/ACE_wrapperszCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">export ACE_ROOT </p>
    <li>然后，在$ACE_ROOT/ace目录中创建一个名为config.h的文件，在其中包含如下一行zCkLinux联盟
    <p>&#160;</p>
    <p style="TEXT-INDENT: 2em">#include "ace/config-linux.h"zCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">或者，简单起见，你也可以直接建立一个指向config-linux.h的符号链接，执行zCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">ln -s config-linux.h config.h </p>
    <li>同样，在$ACE_ROOT/include/makeinclude目录中创建一个名为platform_macros.GNU的文件，在其中包含如下一行zCkLinux联盟
    <p>&#160;</p>
    <p style="TEXT-INDENT: 2em">include $(ACE_ROOT)/include/makeinclude/platform_linux.GNUzCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">或者，简单起见，你也可以直接建立一个指向platform_linux.GNU的符号链接，执行zCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">ln -s platform_linux.GNU platform_macros.GNU </p>
    <li>最后一步，设置环境变量LD_LIBRARY_PATH，执行zCkLinux联盟
    <p>&#160;</p>
    <p style="TEXT-INDENT: 2em">setenv LD_LIBRARY_PATH $ACE_ROOT/ace:$ACE_ROOT/lib:zCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">/usr/local/lib:$LD_LIBRARY_PATHzCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">或者在~/.bash_profile文件中添加如下两行zCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">LD_LIBRARY_PATH=$ACE_ROOT/ace:$ACE_ROOT/lib:zCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">/usr/local/lib:$LD_LIBRARY_PATHzCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">export LD_LIBRARY_PATH</p>
    </li>
</ol>
<p>&#160;</p>
<p style="TEXT-INDENT: 2em">安装完成：zCkLinux联盟</p>
<p style="TEXT-INDENT: 2em">经过上面的步骤，ACE已经安装到了您的系统上了，下面我们将编译并执行ACE的例程以验证我们的工作。zCkLinux联盟</p>
<p style="TEXT-INDENT: 2em">这里我们以《C++网络编程，卷一》所带的例子为例。zCkLinux联盟 </p>
<ol>
    <li>进入例程目录，执行zCkLinux联盟
    <p>&#160;</p>
    <p style="TEXT-INDENT: 2em">cd $(ACE_ROOT)/examples/C++NPv1 </p>
    <li>编译例子程序，执行zCkLinux联盟
    <p>&#160;</p>
    <p style="TEXT-INDENT: 2em">makezCkLinux联盟</p>
    <p style="TEXT-INDENT: 2em">如果前面的安装和配置正确，很快就能够得到编译后的例子程序。 </p>
    <li>分别执行一个服务器程序(随便哪一个都行)和一个客户端程序(Logging_Client)，如果程序运行正确，说明前面的安装和配置成功，下面你就可以开始你的ACE学习之旅了</li>
</ol>
<p>&nbsp;</p>
<p><strong><font color=#000000 size=4>补充</font></strong></p>
<p>&nbsp;</p>
<p>下载ace 5.6<br>在根目录下建立一个文件夹<br>mkdir /ace<br>把下载的ace包移过去，解压得到一个文件夹ACE_wrappers<br>然后进入这个文件夹，看看里面的readme就可以晓得，linux下如何编译和安装<br>网上很多人说要建立一个config.h的文件，那是好多年前的老皇历了，readme里面没有说要建立这么个玩意，那就不建立。<br>直接进入主题，编译：<br>cd&nbsp; /ace/ACE_wrappers<br>mkdir build <br>cd build<br>../configure 我们使用默认的option<br>make<br>make install<br>过程很快，然后我们进入到/usr/local目录下，可以看到include里面有ace要用的头文件，lib里面有ace要用的库文件<br>linux的库文件 的搜索路径如下：<br>/usr/include<br>/usr/local/include<br>/usr/lib/gcc-lib/i386-linux/2.95.2/include<br>/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g -3<br>/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include<br>因此，我们不用设置ace的头文件了。<br>但是ace库文件不是linux的自带的默认的库文件，因此我们使用的时候要带上，而ace现在的库文件并不是系统的，先看一下默认的：<br>&nbsp;默认的动态库搜索路径/lib和/usr/lib<br>我们把ace所在的库文件路径添加进去：<br>一：<br>在/etc/bashrc中加入：<br>export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib<br>重启<br>二：<br>打开/etc/ld.so.conf<br>本来内容是如下：<br>include ld.so.conf.d/*.conf<br>我们添加ace路径后变成如下<br>include ld.so.conf.d/*.conf<br>/usr/local/lib<br>保存退出！<br>然后执行&nbsp;&nbsp;&nbsp; ldconfig<br>就可以了。<br>下面我们弄一个简单的ace程序：<br>/////////////////////////hello.cpp<br>#include "ace/OS.h"<br>#include "ace/Log_Msg.h"<br>&nbsp;<br>int main (int argc, char *argv[])<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_DEBUG((LM_DEBUG,"Hello, ACE!\n"));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_OS::exit(1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br>}</p>
<p>这么就不写makefile了，直接用g＋＋编译就是了。<br>编译<br>g++ hello.cpp -o hello -lACE<br>运行：<br>./hello<br>结果：<br>[root@BTazuo ~]# ./hello<br>Hello, ACE!</p>
<p>&nbsp;</p>
<img src ="http://www.cppblog.com/YGFaith/aggbug/70845.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/YGFaith/" target="_blank">YG</a> 2008-12-31 13:37 <a href="http://www.cppblog.com/YGFaith/archive/2008/12/31/70845.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>'TryEnterCriticalSection'  错误</title><link>http://www.cppblog.com/YGFaith/archive/2008/12/30/70759.html</link><dc:creator>YG</dc:creator><author>YG</author><pubDate>Tue, 30 Dec 2008 04:49:00 GMT</pubDate><guid>http://www.cppblog.com/YGFaith/archive/2008/12/30/70759.html</guid><wfw:comment>http://www.cppblog.com/YGFaith/comments/70759.html</wfw:comment><comments>http://www.cppblog.com/YGFaith/archive/2008/12/30/70759.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/YGFaith/comments/commentRss/70759.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/YGFaith/services/trackbacks/70759.html</trackback:ping><description><![CDATA[<p>&nbsp; 隔了一段时间后来重新编译原本还可以编译运行的程序，在DEBUG下还是正常，但是换成release后就出现了下载问题<br>'TryEnterCriticalSection' : is not a member of '`global namespace''</p>
<p><br>解决方法：<br>处理办法:<span class=postbody twffan="done">在stdafx.h或程序开始处中增加如下宏定义，即可。 <br>用于指明WINDOWS系统版本。 <br><br>//for use TryEnterCriticalSection <br>#ifndef _WIN32_WINNT <br># define _WIN32_WINNT 0x500 <br>#endif</span></p>
<img src ="http://www.cppblog.com/YGFaith/aggbug/70759.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/YGFaith/" target="_blank">YG</a> 2008-12-30 12:49 <a href="http://www.cppblog.com/YGFaith/archive/2008/12/30/70759.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux配置问题汇总</title><link>http://www.cppblog.com/YGFaith/archive/2008/12/30/70756.html</link><dc:creator>YG</dc:creator><author>YG</author><pubDate>Tue, 30 Dec 2008 03:48:00 GMT</pubDate><guid>http://www.cppblog.com/YGFaith/archive/2008/12/30/70756.html</guid><wfw:comment>http://www.cppblog.com/YGFaith/comments/70756.html</wfw:comment><comments>http://www.cppblog.com/YGFaith/archive/2008/12/30/70756.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/YGFaith/comments/commentRss/70756.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/YGFaith/services/trackbacks/70756.html</trackback:ping><description><![CDATA[<p><span style="COLOR: #000080"><strong>》&nbsp;挂载新区步骤</strong></span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 加了新硬盘后，用Mount挂载上去总是失败，原来要先格式化才能再挂载上去，方法如下：<br></p>
1、mkfs.ext3 -b 1024 -i 1024 /dev/ram5　　//用内存虚拟硬盘进行格式化，定义inode号与block size号一致，对小文件来说更优。整个系统所能存储的文件数较少。 <br><br>2、mkfs.ext3 -b 1024 -i 4096 /dev/ram5　　//改变block size，使4个block与1个inode相对应，这种好处是对大文件来说节省空间，节省inode数量，整个系统所能存储的文件数较多。 <br><br>3、mkdir /mnt/mem5&nbsp; 　//创建挂装目录 <br><br>4、mount /dev/ram5 /mnt/mem5&nbsp;&nbsp; 将虚拟的分区挂载到mem5目录中 <br><br>5、tune2fs -l /dev/ram5&nbsp; //验证当前磁盘格式<br><br><br>Others<br>1、mkfs.ext2 -b 1024 -i 1024 /dev/ram6&nbsp; //创建ext2格式分区 <br><br>2、tune2fs -j /dev/ram5&nbsp; //改变分区 <br><br>3、tune2fs -l /dev/ram5　//验证 <br><br><strong style="COLOR: #000080">》删除无效硬盘悬挂区<br></strong><br>vi /ect/fstab<br><br><strong><span style="COLOR: #000080">》 显示乱码</span><br></strong>修改/etc/sysconfig/i18n&nbsp;&nbsp;文件<br>把里面的LANG＝"en_US"改成 GB2312就可以了<br><br><span style="COLOR: #000080"><strong>》网络配置<br></strong><span style="COLOR: #000000">1）临时修改<br>#IP配置，包括子网掩码,看情况修改eth0和192.168.1.22 <br><br>ifconfig &nbsp; eth0 &nbsp; 192.168.1.22 &nbsp; netmask &nbsp; 255.255.255.0 &nbsp; up <br><br>#网关修改 &nbsp; ,看情况修改192.168.1.2 <br><br>route &nbsp; add &nbsp; default &nbsp; gw &nbsp; 192.168.1.2 <br><br>2）永久修改<br>&nbsp;修改配置：/etc/sysconfig/network-scripts/ifcfg-eth0<br>&nbsp;&nbsp;<br>&nbsp; DEVICE=eth0<br>&nbsp; NOBOOT=yes<br>&nbsp; BOOTPROTO=static<br>&nbsp; IPADDR=192.168.1.9<br>&nbsp; NETMASK=255.255.255.0<br>&nbsp; GATEWAY=192.168.1.1<br>2: DNS&nbsp;&nbsp; /etc/resolv.conf<br>&nbsp;&nbsp;&nbsp;支持三个<br>nameserver 192.168.1.1</span><br><br><strong>》环境变量</strong><br><span style="COLOR: #000000">1:当前目录</span><br><span style="COLOR: #000000">export LD_LIBRARY_PATH=$(pwd)</span></span> <br>export PATH=/xxxxxx/:$PATH<br><br>2:找不到so库问题<br><font style="COLOR: red" size=2>error while loading shared libraries<br><font color=#000000>在/etc/ld.so.conf加入所在库的路径，存档后执行「/sbin/ldconfig &#8211;v」。</font></font> <br>"."代表当前路径 
<img src ="http://www.cppblog.com/YGFaith/aggbug/70756.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/YGFaith/" target="_blank">YG</a> 2008-12-30 11:48 <a href="http://www.cppblog.com/YGFaith/archive/2008/12/30/70756.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[游戏开发]工厂模式</title><link>http://www.cppblog.com/YGFaith/archive/2008/09/09/61432.html</link><dc:creator>YG</dc:creator><author>YG</author><pubDate>Tue, 09 Sep 2008 15:37:00 GMT</pubDate><guid>http://www.cppblog.com/YGFaith/archive/2008/09/09/61432.html</guid><wfw:comment>http://www.cppblog.com/YGFaith/comments/61432.html</wfw:comment><comments>http://www.cppblog.com/YGFaith/archive/2008/09/09/61432.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/YGFaith/comments/commentRss/61432.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/YGFaith/services/trackbacks/61432.html</trackback:ping><description><![CDATA[<p><span>游戏编程是我业余的爱好，也可以提高对编程的兴趣，每当我有时间的时候就会编写游戏，基于图片的问题所以首选小游戏。这是我毕业后第二款小游戏，相比上一款充分的运用了面向对象的技术，让我享受与不断做类的完善,特别提出的是使用递归技术使得算法更加简洁确实是个很不错的技术,比如：游戏中的地图整行消除判断以及消除。</span></p>
<span>目前的设计情况如下:<br></span>(有写没必要的函数省略了,初次使用UML图)<br><br>此贴主要是想探讨类的设计,标题上写了工厂模式,这里只是简单的把UI创建放到另外一个地方罢了,严格来说应该不算是什么工厂,但是主要是代码<br>易读维护性高就可以了.开发环境：VS2005，WIN32、 C++、DX9<br><br><img src="http://www.cppblog.com/images/cppblog_com/ygfaith/PileUpGame.jpg" border=0><br>如果要增加其他按钮只要继承ImageUI,和实现基类的存虚拟函数就可以。基类的事件触发如下代码。<br>
<div style="PADDING-RIGHT: 5px; PADDING-LEFT: 4px; FONT-SIZE: 13px; BORDER-LEFT-COLOR: rgb(204,204,204); PADDING-BOTTOM: 4px; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #000000"><br>PUG_BTN_STAT&nbsp;CImageUI::OnEven(UINT&nbsp;msg,&nbsp;WPARAM&nbsp;wParam,&nbsp;LPARAM&nbsp;lParam)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;POINTS&nbsp;xy;<br>&nbsp;&nbsp;&nbsp;&nbsp;xy&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;MAKEPOINTS(lParam);<br>&nbsp;&nbsp;&nbsp;&nbsp;POINT&nbsp;xy2;<br>&nbsp;&nbsp;&nbsp;&nbsp;xy2.x&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;xy.x;<br>&nbsp;&nbsp;&nbsp;&nbsp;xy2.y&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;xy.y;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">switch</span><span style="COLOR: #000000">(msg)<br>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000">&nbsp;WM_MOUSEMOVE:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(PtInRect(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">_displaySize,xy2))<br>&nbsp;&nbsp;&nbsp;&nbsp;&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;OnPass();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;PASS;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000">&nbsp;WM_LBUTTONDOWN:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(PtInRect(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">_displaySize,xy2))<br>&nbsp;&nbsp;&nbsp;&nbsp;&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;OnClick();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;ONCLICK;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000">&nbsp;WM_LBUTTONUP:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(PtInRect(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">_displaySize,xy2))<br>&nbsp;&nbsp;&nbsp;&nbsp;&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;OnClickOut();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;ONCLICKOUT;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;OnPassOut();<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;COMMAND;<br>}<br><br></span></div>
<br>游戏图片如下:<br><img src="http://www.cppblog.com/images/cppblog_com/ygfaith/elsfk1.JPG" border=0><br><br><img src="http://www.cppblog.com/images/cppblog_com/ygfaith/elsfk.JPG" border=0><br><br>游戏下载:<br><a href="http://www.cppblog.com/Files/YGFaith/elsfkGame.rar">/Files/YGFaith/elsfkGame.rar</a> 
<img src ="http://www.cppblog.com/YGFaith/aggbug/61432.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/YGFaith/" target="_blank">YG</a> 2008-09-09 23:37 <a href="http://www.cppblog.com/YGFaith/archive/2008/09/09/61432.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>观察者模式(Subject/Observer) </title><link>http://www.cppblog.com/YGFaith/archive/2008/08/29/60363.html</link><dc:creator>YG</dc:creator><author>YG</author><pubDate>Fri, 29 Aug 2008 07:49:00 GMT</pubDate><guid>http://www.cppblog.com/YGFaith/archive/2008/08/29/60363.html</guid><wfw:comment>http://www.cppblog.com/YGFaith/comments/60363.html</wfw:comment><comments>http://www.cppblog.com/YGFaith/archive/2008/08/29/60363.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/YGFaith/comments/commentRss/60363.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/YGFaith/services/trackbacks/60363.html</trackback:ping><description><![CDATA[<p align=left>定义：对象间的一对多的依赖关系，当一个对象的状态发生改变时，所有依赖于它的对象都得到通知并被自动更新。&nbsp; <br><br>功能：搜索数据库，当有需要公布的数据将其用<span style="COLOR: #000080"><strong>各种方式</strong><span style="COLOR: #000000">发送出去。<br></span></span>&nbsp; <br><strong>观察者模式</strong>无疑能很好的做到上面的要求，无论要多少种方式，只要增加多个继承之ITransfer接口的派生类即可,有很好的维护性。<br><br>以下是实际的应用.<br><br><img src="http://www.cppblog.com/images/cppblog_com/ygfaith/Subject_observer.jpg" border=0><br><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: #008000">//</span><span style="COLOR: #008000">接口<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">ITransfer.h</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">#pragma&nbsp;once<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">class</span><span style="COLOR: #000000">&nbsp;ITransfer<br><img id=Codehighlighter1_49_174_Open_Image onclick="this.style.display='none'; Codehighlighter1_49_174_Open_Text.style.display='none'; Codehighlighter1_49_174_Closed_Image.style.display='inline'; Codehighlighter1_49_174_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_49_174_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_49_174_Closed_Text.style.display='none'; Codehighlighter1_49_174_Open_Image.style.display='inline'; Codehighlighter1_49_174_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_49_174_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_49_174_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</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">virtual</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;DoTransfer(...</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;</span></div>
<br><br>
<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: #008000">//</span><span style="COLOR: #008000">FetionTransfer.h<br></span><span style="COLOR: #008000"><span style="COLOR: #000000">#pragma&nbsp;once</span><br>&nbsp;&nbsp; #include "Transfer.h" <br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;CFetionTransfer:</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;ITransfer<br><img id=Codehighlighter1_58_270_Open_Image onclick="this.style.display='none'; Codehighlighter1_58_270_Open_Text.style.display='none'; Codehighlighter1_58_270_Closed_Image.style.display='inline'; Codehighlighter1_58_270_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_58_270_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_58_270_Closed_Text.style.display='none'; Codehighlighter1_58_270_Open_Image.style.display='inline'; Codehighlighter1_58_270_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_58_270_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_58_270_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;CFetionTransfer();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">CFetionTransfer();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;DoTransfer(...);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;......<br></span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;</span></div>
<br><br>
<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: #008000">//</span><span style="COLOR: #008000">MailTransfer.h<br><span style="COLOR: #000000">#pragma&nbsp;once</span><br></span><span style="COLOR: #008000">&nbsp;&nbsp; #include "Transfer.h"<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;CMailTransfer:&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;ITransfer<br><img id=Codehighlighter1_55_264_Open_Image onclick="this.style.display='none'; Codehighlighter1_55_264_Open_Text.style.display='none'; Codehighlighter1_55_264_Closed_Image.style.display='inline'; Codehighlighter1_55_264_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_55_264_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_55_264_Closed_Text.style.display='none'; Codehighlighter1_55_264_Open_Image.style.display='inline'; Codehighlighter1_55_264_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_55_264_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_55_264_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;CMailTransfer();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">CMailTransfer();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;DoTransfer(...);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>....<br></span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;</span></div>
<br><br>
<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: #008000">//</span><span style="COLOR: #008000">TransferPool.h</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">#pragma&nbsp;once<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>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Transfer.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">vector</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><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;CTransferPool<br><img id=Codehighlighter1_113_369_Open_Image onclick="this.style.display='none'; Codehighlighter1_113_369_Open_Text.style.display='none'; Codehighlighter1_113_369_Closed_Image.style.display='inline'; Codehighlighter1_113_369_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_113_369_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_113_369_Closed_Text.style.display='none'; Codehighlighter1_113_369_Open_Image.style.display='inline'; Codehighlighter1_113_369_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_113_369_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_113_369_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;vector</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">ITransfer</span><span style="COLOR: #000000">*&gt;</span><span style="COLOR: #000000">&nbsp;vo;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</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">virtual</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">CTransferPool();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Login(ITransfer</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;po);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Logout(ITransfer</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;po);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">向各成员广播消息</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Notify(</span><span style="COLOR: #0000ff">...</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;</span></div>
<br>
<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: #008000">//</span><span style="COLOR: #008000">TransferPool.cpp</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">TransferPool.h</span><span style="COLOR: #000000">"</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>CTransferPool::</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">CTransferPool()<br><img id=Codehighlighter1_78_195_Open_Image onclick="this.style.display='none'; Codehighlighter1_78_195_Open_Text.style.display='none'; Codehighlighter1_78_195_Closed_Image.style.display='inline'; Codehighlighter1_78_195_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_78_195_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_78_195_Closed_Text.style.display='none'; Codehighlighter1_78_195_Open_Image.style.display='inline'; Codehighlighter1_78_195_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_78_195_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_78_195_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;vector</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">ITransfer</span><span style="COLOR: #000000">*&gt;</span><span style="COLOR: #000000">::iterator&nbsp;vi&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;vo.begin();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(;&nbsp;vi&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;vo.end();&nbsp;vi</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_167_193_Open_Image onclick="this.style.display='none'; Codehighlighter1_167_193_Open_Text.style.display='none'; Codehighlighter1_167_193_Closed_Image.style.display='inline'; Codehighlighter1_167_193_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_167_193_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_167_193_Closed_Text.style.display='none'; Codehighlighter1_167_193_Open_Image.style.display='inline'; Codehighlighter1_167_193_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_167_193_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_167_193_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;if(*vi)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delete *vi;<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; *vi = NULL;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></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><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;CTransferPool::Login(ITransfer</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;po)<br><img id=Codehighlighter1_239_263_Open_Image onclick="this.style.display='none'; Codehighlighter1_239_263_Open_Text.style.display='none'; Codehighlighter1_239_263_Closed_Image.style.display='inline'; Codehighlighter1_239_263_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_239_263_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_239_263_Closed_Text.style.display='none'; Codehighlighter1_239_263_Open_Image.style.display='inline'; Codehighlighter1_239_263_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_239_263_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_239_263_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;vo.push_back(po);<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;CTransferPool::Logout(ITransfer</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;po)<br><img id=Codehighlighter1_308_454_Open_Image onclick="this.style.display='none'; Codehighlighter1_308_454_Open_Text.style.display='none'; Codehighlighter1_308_454_Closed_Image.style.display='inline'; Codehighlighter1_308_454_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_308_454_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_308_454_Closed_Text.style.display='none'; Codehighlighter1_308_454_Open_Image.style.display='inline'; Codehighlighter1_308_454_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_308_454_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_308_454_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;vector</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">ITransfer</span><span style="COLOR: #000000">*&gt;</span><span style="COLOR: #000000">::iterator&nbsp;vi&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;vo.begin();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(;&nbsp;vi&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;vo.end();&nbsp;vi</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_397_452_Open_Image onclick="this.style.display='none'; Codehighlighter1_397_452_Open_Text.style.display='none'; Codehighlighter1_397_452_Closed_Image.style.display='inline'; Codehighlighter1_397_452_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_397_452_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_397_452_Closed_Text.style.display='none'; Codehighlighter1_397_452_Open_Image.style.display='inline'; Codehighlighter1_397_452_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_397_452_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_397_452_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">vi&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;po)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vo.erase(vi);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></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><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;CTransferPool::Notify(</span><span style="COLOR: #0000ff">...</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_568_766_Open_Image onclick="this.style.display='none'; Codehighlighter1_568_766_Open_Text.style.display='none'; Codehighlighter1_568_766_Closed_Image.style.display='inline'; Codehighlighter1_568_766_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_568_766_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_568_766_Closed_Text.style.display='none'; Codehighlighter1_568_766_Open_Image.style.display='inline'; Codehighlighter1_568_766_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_568_766_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_568_766_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;vector</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">ITransfer</span><span style="COLOR: #000000">*&gt;</span><span style="COLOR: #000000">::iterator&nbsp;vi&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;vo.begin();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(;&nbsp;vi&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;vo.end();&nbsp;vi</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_657_764_Open_Image onclick="this.style.display='none'; Codehighlighter1_657_764_Open_Text.style.display='none'; Codehighlighter1_657_764_Closed_Image.style.display='inline'; Codehighlighter1_657_764_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_657_764_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_657_764_Closed_Text.style.display='none'; Codehighlighter1_657_764_Open_Image.style.display='inline'; Codehighlighter1_657_764_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_657_764_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_657_764_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ITransfer&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">s&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">vi;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">vi)</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">DoTransfer(...);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br>
<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"><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_11_475_Open_Image onclick="this.style.display='none'; Codehighlighter1_11_475_Open_Text.style.display='none'; Codehighlighter1_11_475_Closed_Image.style.display='inline'; Codehighlighter1_11_475_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_11_475_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_11_475_Closed_Text.style.display='none'; Codehighlighter1_11_475_Open_Image.style.display='inline'; Codehighlighter1_11_475_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_11_475_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_11_475_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;CTransferPool</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">m_pTranPool</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;CTransferPool();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;CFetionTransfer&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">m_pFetionTran&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;CFetionTransfer(...);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;CMailTransfer&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">m_pMailTran&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;CMailTransfer(...);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;m_pTranPool</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Login(m_pFetionTran);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;m_pTranPool</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Login(m_pMailTran);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(需要发送消息)<br><img id=Codehighlighter1_295_343_Open_Image onclick="this.style.display='none'; Codehighlighter1_295_343_Open_Text.style.display='none'; Codehighlighter1_295_343_Closed_Image.style.display='inline'; Codehighlighter1_295_343_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_295_343_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_295_343_Closed_Text.style.display='none'; Codehighlighter1_295_343_Open_Image.style.display='inline'; Codehighlighter1_295_343_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_295_343_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_295_343_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_pTranPool</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Notify(<img src="http://www.cppblog.com/Images/dot.gif">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">释放</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(m_pTranPool)<br><img id=Codehighlighter1_393_463_Open_Image onclick="this.style.display='none'; Codehighlighter1_393_463_Open_Text.style.display='none'; Codehighlighter1_393_463_Closed_Image.style.display='inline'; Codehighlighter1_393_463_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_393_463_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_393_463_Closed_Text.style.display='none'; Codehighlighter1_393_463_Open_Image.style.display='inline'; Codehighlighter1_393_463_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_393_463_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_393_463_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete&nbsp;m_pTranPool;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_pTranPool&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;NULL;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><img src="http://www.cppblog.com/Images/dot.gif"><img src="http://www.cppblog.com/Images/dot.gif"><img src="http://www.cppblog.com/Images/dot.gif"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<img src ="http://www.cppblog.com/YGFaith/aggbug/60363.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/YGFaith/" target="_blank">YG</a> 2008-08-29 15:49 <a href="http://www.cppblog.com/YGFaith/archive/2008/08/29/60363.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>求两个数中最大值，不用判断语句。</title><link>http://www.cppblog.com/YGFaith/archive/2008/08/21/59524.html</link><dc:creator>YG</dc:creator><author>YG</author><pubDate>Thu, 21 Aug 2008 06:20:00 GMT</pubDate><guid>http://www.cppblog.com/YGFaith/archive/2008/08/21/59524.html</guid><wfw:comment>http://www.cppblog.com/YGFaith/comments/59524.html</wfw:comment><comments>http://www.cppblog.com/YGFaith/archive/2008/08/21/59524.html#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://www.cppblog.com/YGFaith/comments/commentRss/59524.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/YGFaith/services/trackbacks/59524.html</trackback:ping><description><![CDATA[<p>&nbsp;</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: #000000">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">iostream.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;<br>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">math.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;<br><br></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;bits&nbsp;(&nbsp;sizeof(&nbsp;int&nbsp;)&nbsp;*&nbsp;8&nbsp;-&nbsp;1&nbsp;)&nbsp;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;CheckFlag(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;x,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;y&nbsp;)&nbsp;&nbsp;<br>{&nbsp;&nbsp;<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;s1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;x&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;bits;&nbsp;&nbsp;<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;s2&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;y&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;bits;&nbsp;&nbsp;<br>s1</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">abs(s1);&nbsp;<br>s2</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">abs(s2);&nbsp;<br></span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;(&nbsp;s1&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;s2&nbsp;);&nbsp;&nbsp;<br>}&nbsp;&nbsp;<br></span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;SameSign(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Flag,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;x,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;y&nbsp;)&nbsp;<br>{&nbsp;&nbsp;<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;t[</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;{&nbsp;x,&nbsp;y&nbsp;};&nbsp;<br></span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;z&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;x&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;y;&nbsp;<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;s&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;z&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;(bits</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">32</span><span style="COLOR: #000000">);&nbsp;&nbsp;<br>s</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">abs(s);&nbsp;<br></span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;t[s];&nbsp;<br>}&nbsp;&nbsp;<br></span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;DiffSign(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Flag,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;x,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;y)&nbsp;比较&nbsp;<br>{&nbsp;&nbsp;<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;t[</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;{&nbsp;x,&nbsp;y&nbsp;};&nbsp;&nbsp;<br></span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;t[Flag&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">];&nbsp;<br>}&nbsp;<br></span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">FuncList[</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">])(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Flag,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;x,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;y)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">{SameSign,&nbsp;DiffSign,&nbsp;DiffSign,&nbsp;SameSign};&nbsp;&nbsp;<br></span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Max(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;x,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;y&nbsp;)&nbsp;&nbsp;<br>{&nbsp;&nbsp;<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Flag&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;CheckFlag(&nbsp;x,&nbsp;y&nbsp;);&nbsp;&nbsp;<br><br></span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">FuncList[Flag])(Flag,x,y);&nbsp;&nbsp;<br>}&nbsp;<br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;main()&nbsp;&nbsp;<br>{&nbsp;<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;x,y,z;&nbsp;<br>cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">请输入整型x的值(-32768~32767):</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;&nbsp;<br>cin</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">x;&nbsp;<br>cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">请输入整型y的值(-32768~32767):</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;&nbsp;<br>cin</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">y;&nbsp;<br>z</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">Max(x,y);&nbsp;<br>cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">最大的数:</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">z</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl;&nbsp;<br>}&nbsp;&nbsp;<br><br></span></div>
<br><br>#define&nbsp;bits&nbsp;(&nbsp;sizeof(&nbsp;int&nbsp;)&nbsp;*&nbsp;8&nbsp;-&nbsp;1&nbsp;)&nbsp;//移动的位数 <br>static&nbsp;int&nbsp;SameSign(&nbsp;int&nbsp;Flag,&nbsp;int&nbsp;x,&nbsp;int&nbsp;y&nbsp;)&nbsp;//函数功能:x,y同号时的比较 <br>static&nbsp;int&nbsp;DiffSign(int&nbsp;Flag,int&nbsp;x,int&nbsp;y)&nbsp;//函数功能:x,y异号时的比较 <br>static&nbsp;int&nbsp;(*FuncList[4])(int&nbsp;Flag,int&nbsp;x,int&nbsp;y)={SameSign,&nbsp;DiffSign,&nbsp;DiffSign,&nbsp;SameSign};&nbsp;//定义函数指针数组 <br>static&nbsp;int&nbsp;Max(&nbsp;int&nbsp;x,&nbsp;int&nbsp;y&nbsp;)&nbsp;//函数功能:求最大值 <br><br>static&nbsp;int&nbsp;CheckFlag(&nbsp;int&nbsp;x,&nbsp;int&nbsp;y&nbsp;)&nbsp;//函数功能:检测x,y的符号 <br>/* <br>Ｆlag&nbsp;的值 <br>+&nbsp;+:0 <br>-&nbsp;+;1 <br>+&nbsp;1:2 <br>-&nbsp;-:3 <br>*/ 
<img src ="http://www.cppblog.com/YGFaith/aggbug/59524.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/YGFaith/" target="_blank">YG</a> 2008-08-21 14:20 <a href="http://www.cppblog.com/YGFaith/archive/2008/08/21/59524.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>