??xml version="1.0" encoding="utf-8" standalone="yes"?>午夜精品视频一区,欧美va天堂va视频va在线,精品成人乱色一区二区http://www.shnenglu.com/PeakGao/archive/2008/11/15/66969.htmlPeakGaoPeakGaoFri, 14 Nov 2008 17:41:00 GMThttp://www.shnenglu.com/PeakGao/archive/2008/11/15/66969.htmlhttp://www.shnenglu.com/PeakGao/comments/66969.htmlhttp://www.shnenglu.com/PeakGao/archive/2008/11/15/66969.html#Feedback0http://www.shnenglu.com/PeakGao/comments/commentRss/66969.htmlhttp://www.shnenglu.com/PeakGao/services/trackbacks/66969.html阅读全文

PeakGao 2008-11-15 01:41 发表评论
]]>
解决Windows E序界面闪烁问题的一些经?/title><link>http://www.shnenglu.com/PeakGao/archive/2007/11/21/37109.html</link><dc:creator>PeakGao</dc:creator><author>PeakGao</author><pubDate>Wed, 21 Nov 2007 14:51:00 GMT</pubDate><guid>http://www.shnenglu.com/PeakGao/archive/2007/11/21/37109.html</guid><wfw:comment>http://www.shnenglu.com/PeakGao/comments/37109.html</wfw:comment><comments>http://www.shnenglu.com/PeakGao/archive/2007/11/21/37109.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/PeakGao/comments/commentRss/37109.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/PeakGao/services/trackbacks/37109.html</trackback:ping><description><![CDATA[     摘要:   <a href='http://www.shnenglu.com/PeakGao/archive/2007/11/21/37109.html'>阅读全文</a><img src ="http://www.shnenglu.com/PeakGao/aggbug/37109.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/PeakGao/" target="_blank">PeakGao</a> 2007-11-21 22:51 <a href="http://www.shnenglu.com/PeakGao/archive/2007/11/21/37109.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>有意转让搜烦引擎http://www.shnenglu.com/PeakGao/archive/2007/11/10/36276.htmlPeakGaoPeakGaoSat, 10 Nov 2007 04:09:00 GMThttp://www.shnenglu.com/PeakGao/archive/2007/11/10/36276.htmlhttp://www.shnenglu.com/PeakGao/comments/36276.htmlhttp://www.shnenglu.com/PeakGao/archive/2007/11/10/36276.html#Feedback21http://www.shnenglu.com/PeakGao/comments/commentRss/36276.htmlhttp://www.shnenglu.com/PeakGao/services/trackbacks/36276.html合作方式Q?br>1、可以只提供蜘蛛E序Qƈ定制成企业的Ҏ(gu)需要,如将搜集的信息经q解析,按要求的字段形式存入数据库;
2、可以稍加改动成一个垂直搜索引擎;
3、可以提供搜索领域的ideaQ如果idea可行Q本人可以合作方式实现该ideaQ?br>4、可以提供整套服务,包括蜘蛛、分词、烦引、搜索服务;

 

 
郁闷Q感觉cppblog的h气不够,是不是考虑搬家到csdn呢?奇怪了cppblog删脓(chung)Q?

PeakGao 2007-11-10 12:09 发表评论
]]>
ACE中ACE_Message_Block的缓存处?Q?l篇http://www.shnenglu.com/PeakGao/archive/2007/10/29/35439.htmlPeakGaoPeakGaoMon, 29 Oct 2007 04:57:00 GMThttp://www.shnenglu.com/PeakGao/archive/2007/10/29/35439.htmlhttp://www.shnenglu.com/PeakGao/comments/35439.htmlhttp://www.shnenglu.com/PeakGao/archive/2007/10/29/35439.html#Feedback0http://www.shnenglu.com/PeakGao/comments/commentRss/35439.htmlhttp://www.shnenglu.com/PeakGao/services/trackbacks/35439.html阅读全文

PeakGao 2007-10-29 12:57 发表评论
]]>
自己实现的一个ACE内存分配?/title><link>http://www.shnenglu.com/PeakGao/archive/2007/10/29/35437.html</link><dc:creator>PeakGao</dc:creator><author>PeakGao</author><pubDate>Mon, 29 Oct 2007 04:48:00 GMT</pubDate><guid>http://www.shnenglu.com/PeakGao/archive/2007/10/29/35437.html</guid><wfw:comment>http://www.shnenglu.com/PeakGao/comments/35437.html</wfw:comment><comments>http://www.shnenglu.com/PeakGao/archive/2007/10/29/35437.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/PeakGao/comments/commentRss/35437.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/PeakGao/services/trackbacks/35437.html</trackback:ping><description><![CDATA[     摘要: 针对我的前两文章《基于ACE实现的一个内存池》和《基于ACE实现的一个内存池Q箋》后Q发现缓存ACE_Message_Block的时候还是不太方便,然后q脆实现了ACE_Allocator接口Q代码如下,利用q个分配器的ACE_Message_Block会(x)很快贴出来?/MemPoolAllocator.h /**//** *    @da...  <a href='http://www.shnenglu.com/PeakGao/archive/2007/10/29/35437.html'>阅读全文</a><img src ="http://www.shnenglu.com/PeakGao/aggbug/35437.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/PeakGao/" target="_blank">PeakGao</a> 2007-10-29 12:48 <a href="http://www.shnenglu.com/PeakGao/archive/2007/10/29/35437.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ZACE实现的一个内存池Q箋?/title><link>http://www.shnenglu.com/PeakGao/archive/2007/10/29/35435.html</link><dc:creator>PeakGao</dc:creator><author>PeakGao</author><pubDate>Mon, 29 Oct 2007 04:43:00 GMT</pubDate><guid>http://www.shnenglu.com/PeakGao/archive/2007/10/29/35435.html</guid><wfw:comment>http://www.shnenglu.com/PeakGao/comments/35435.html</wfw:comment><comments>http://www.shnenglu.com/PeakGao/archive/2007/10/29/35435.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/PeakGao/comments/commentRss/35435.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/PeakGao/services/trackbacks/35435.html</trackback:ping><description><![CDATA[     摘要: 针对上篇文章《基于ACE实现的一个内存池 》,今天我进行了改版Q实之更加方便和合理Q代码如下:(x)// MemPoolT.h /**//** *    @date 2007.10.25 *  @author PeakGao <peakgao163@163.com> */...  <a href='http://www.shnenglu.com/PeakGao/archive/2007/10/29/35435.html'>阅读全文</a><img src ="http://www.shnenglu.com/PeakGao/aggbug/35435.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/PeakGao/" target="_blank">PeakGao</a> 2007-10-29 12:43 <a href="http://www.shnenglu.com/PeakGao/archive/2007/10/29/35435.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ACE中ACE_Message_Block的缓存处?/title><link>http://www.shnenglu.com/PeakGao/archive/2007/10/28/35364.html</link><dc:creator>PeakGao</dc:creator><author>PeakGao</author><pubDate>Sun, 28 Oct 2007 12:38:00 GMT</pubDate><guid>http://www.shnenglu.com/PeakGao/archive/2007/10/28/35364.html</guid><wfw:comment>http://www.shnenglu.com/PeakGao/comments/35364.html</wfw:comment><comments>http://www.shnenglu.com/PeakGao/archive/2007/10/28/35364.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.shnenglu.com/PeakGao/comments/commentRss/35364.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/PeakGao/services/trackbacks/35364.html</trackback:ping><description><![CDATA[Z我前一文章?a id=_21bb1c643d1a_HomePageDays_DaysList_ctl00_DayItem_DayList_ctl01_TitleUrl href="http://www.shnenglu.com/PeakGao/archive/2007/10/28/35360.html"><font color=#0000ff>ZACE实现的一个内存池</font></a>》的代码Q这里是应用Q有问题不要打我。。?br><br>// MessageBlockManager.h<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 id=Codehighlighter1_0_67_Open_Image onclick="this.style.display='none'; Codehighlighter1_0_67_Open_Text.style.display='none'; Codehighlighter1_0_67_Closed_Image.style.display='inline'; Codehighlighter1_0_67_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_0_67_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_0_67_Closed_Text.style.display='none'; Codehighlighter1_0_67_Open_Image.style.display='inline'; Codehighlighter1_0_67_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align=top><span id=Codehighlighter1_0_67_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">/**/</span><span id=Codehighlighter1_0_67_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top> *    @date 2007.10.28<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top> *  @author PeakGao <peakgao163@163.com><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top> </span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>#ifndef OM_MESSAGEBLOCKMANAGER_H<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000"> OM_MESSAGEBLOCKMANAGER_H</span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>#include </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">ace</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">thread_mutex.h</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>#include </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">ace</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">synch_traits.h</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>#include </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">ace</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">message_block.h</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>#include </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">MemPoolT.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_263_888_Open_Image onclick="this.style.display='none'; Codehighlighter1_263_888_Open_Text.style.display='none'; Codehighlighter1_263_888_Closed_Image.style.display='inline'; Codehighlighter1_263_888_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_263_888_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_263_888_Closed_Text.style.display='none'; Codehighlighter1_263_888_Open_Image.style.display='inline'; Codehighlighter1_263_888_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000"> om</span><span id=Codehighlighter1_263_888_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.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_263_888_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> MessageBlockManager<br><img id=Codehighlighter1_294_884_Open_Image onclick="this.style.display='none'; Codehighlighter1_294_884_Open_Text.style.display='none'; Codehighlighter1_294_884_Closed_Image.style.display='inline'; Codehighlighter1_294_884_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_294_884_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_294_884_Closed_Text.style.display='none'; Codehighlighter1_294_884_Open_Image.style.display='inline'; Codehighlighter1_294_884_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_294_884_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.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_294_884_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        typedef CachePool</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">ACE_SYNCH_MUTEX</span><span style="COLOR: #000000">></span><span style="COLOR: #000000">    MyCachePool;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_373_397_Open_Image onclick="this.style.display='none'; Codehighlighter1_373_397_Open_Text.style.display='none'; Codehighlighter1_373_397_Closed_Image.style.display='inline'; Codehighlighter1_373_397_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_373_397_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_373_397_Closed_Text.style.display='none'; Codehighlighter1_373_397_Open_Image.style.display='inline'; Codehighlighter1_373_397_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        MyCachePool            mBufPool;    </span><span id=Codehighlighter1_373_397_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">/**/</span><span id=Codehighlighter1_373_397_Open_Text><span style="COLOR: #808080">///</span><span style="COLOR: #008000"> ~存ACE_Data_Block的缓冲区</span><span style="COLOR: #808080"></span></span><br><img id=Codehighlighter1_423_474_Open_Image onclick="this.style.display='none'; Codehighlighter1_423_474_Open_Text.style.display='none'; Codehighlighter1_423_474_Closed_Image.style.display='inline'; Codehighlighter1_423_474_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_423_474_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_423_474_Closed_Text.style.display='none'; Codehighlighter1_423_474_Open_Image.style.display='inline'; Codehighlighter1_423_474_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top><span style="COLOR: #000000">        MyCachePool            mDBPool;    </span><span id=Codehighlighter1_423_474_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">/**/</span><span id=Codehighlighter1_423_474_Open_Text><span style="COLOR: #808080">///</span><span style="COLOR: #008000"> ~存ACE_Data_Block对象本nQ由于不能默认构造,所以没有用ObjectPool模版</span><span style="COLOR: #808080"></span></span><br><img id=Codehighlighter1_500_554_Open_Image onclick="this.style.display='none'; Codehighlighter1_500_554_Open_Text.style.display='none'; Codehighlighter1_500_554_Closed_Image.style.display='inline'; Codehighlighter1_500_554_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_500_554_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_500_554_Closed_Text.style.display='none'; Codehighlighter1_500_554_Open_Image.style.display='inline'; Codehighlighter1_500_554_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top><span style="COLOR: #000000">        MyCachePool            mMBPool;    </span><span id=Codehighlighter1_500_554_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">/**/</span><span id=Codehighlighter1_500_554_Open_Text><span style="COLOR: #808080">///</span><span style="COLOR: #008000"> ~存ACE_Message_Block对象本nQ由于不能默认构造,所以没有用ObjectPool模版</span><span style="COLOR: #808080"></span></span><br><img id=Codehighlighter1_583_591_Open_Image onclick="this.style.display='none'; Codehighlighter1_583_591_Open_Text.style.display='none'; Codehighlighter1_583_591_Closed_Image.style.display='inline'; Codehighlighter1_583_591_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_583_591_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_583_591_Closed_Text.style.display='none'; Codehighlighter1_583_591_Open_Image.style.display='inline'; Codehighlighter1_583_591_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top><span style="COLOR: #000000">        ACE_SYNCH_MUTEX</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">    mMutex;        </span><span id=Codehighlighter1_583_591_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">/**/</span><span id=Codehighlighter1_583_591_Open_Text><span style="COLOR: #808080">///</span><span style="COLOR: #008000"> U程同步</span><span style="COLOR: #808080"></span></span><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> MessageBlockManager</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> instance();<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        MessageBlockManager();<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">MessageBlockManager();<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_699_708_Open_Image onclick="this.style.display='none'; Codehighlighter1_699_708_Open_Text.style.display='none'; Codehighlighter1_699_708_Closed_Image.style.display='inline'; Codehighlighter1_699_708_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_699_708_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_699_708_Closed_Text.style.display='none'; Codehighlighter1_699_708_Open_Image.style.display='inline'; Codehighlighter1_699_708_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span id=Codehighlighter1_699_708_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">/**/</span><span id=Codehighlighter1_699_708_Open_Text><span style="COLOR: #808080">///</span><span style="COLOR: #008000"> 初始化参?/span><span style="COLOR: #808080"></span></span><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> create(size_t bufSize, size_t objCount);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_760_769_Open_Image onclick="this.style.display='none'; Codehighlighter1_760_769_Open_Text.style.display='none'; Codehighlighter1_760_769_Closed_Image.style.display='inline'; Codehighlighter1_760_769_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_760_769_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_760_769_Closed_Text.style.display='none'; Codehighlighter1_760_769_Open_Image.style.display='inline'; Codehighlighter1_760_769_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span id=Codehighlighter1_760_769_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">/**/</span><span id=Codehighlighter1_760_769_Open_Text><span style="COLOR: #808080">///</span><span style="COLOR: #008000"> 清除~冲?/span><span style="COLOR: #808080"></span></span><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> clear();<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_789_800_Open_Image onclick="this.style.display='none'; Codehighlighter1_789_800_Open_Text.style.display='none'; Codehighlighter1_789_800_Closed_Image.style.display='inline'; Codehighlighter1_789_800_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_789_800_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_789_800_Closed_Text.style.display='none'; Codehighlighter1_789_800_Open_Image.style.display='inline'; Codehighlighter1_789_800_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span id=Codehighlighter1_789_800_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">/**/</span><span id=Codehighlighter1_789_800_Open_Text><span style="COLOR: #808080">///</span><span style="COLOR: #008000"> 分配一个消息块</span><span style="COLOR: #808080"></span></span><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><span style="COLOR: #000000">        ACE_Message_Block</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> alloc();<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_834_846_Open_Image onclick="this.style.display='none'; Codehighlighter1_834_846_Open_Text.style.display='none'; Codehighlighter1_834_846_Closed_Image.style.display='inline'; Codehighlighter1_834_846_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_834_846_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_834_846_Closed_Text.style.display='none'; Codehighlighter1_834_846_Open_Image.style.display='inline'; Codehighlighter1_834_846_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span id=Codehighlighter1_834_846_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">/**/</span><span id=Codehighlighter1_834_846_Open_Text><span style="COLOR: #808080">///</span><span style="COLOR: #008000"> 释放指定的消息块</span><span style="COLOR: #808080"></span></span><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> free(ACE_Message_Block</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> mb);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000">;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"> </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> namespace om</span><span style="COLOR: #008000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">#endif</span><span style="COLOR: #000000"> </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> OM_MESSAGEBLOCKMANAGER_H</span></div> <br><br>// MessageBlockManager.cpp<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 id=Codehighlighter1_0_67_Open_Image onclick="this.style.display='none'; Codehighlighter1_0_67_Open_Text.style.display='none'; Codehighlighter1_0_67_Closed_Image.style.display='inline'; Codehighlighter1_0_67_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_0_67_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_0_67_Closed_Text.style.display='none'; Codehighlighter1_0_67_Open_Image.style.display='inline'; Codehighlighter1_0_67_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align=top><span id=Codehighlighter1_0_67_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">/**/</span><span id=Codehighlighter1_0_67_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top> *    @date 2007.10.28<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top> *  @author PeakGao <peakgao163@163.com><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top> </span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top> <br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>#include </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">MessageBlockManager.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_117_1529_Open_Image onclick="this.style.display='none'; Codehighlighter1_117_1529_Open_Text.style.display='none'; Codehighlighter1_117_1529_Closed_Image.style.display='inline'; Codehighlighter1_117_1529_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_117_1529_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_117_1529_Closed_Text.style.display='none'; Codehighlighter1_117_1529_Open_Image.style.display='inline'; Codehighlighter1_117_1529_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000"> om</span><span id=Codehighlighter1_117_1529_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.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_117_1529_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    <br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    MessageBlockManager</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> MessageBlockManager::instance()<br><img id=Codehighlighter1_177_286_Open_Image onclick="this.style.display='none'; Codehighlighter1_177_286_Open_Text.style.display='none'; Codehighlighter1_177_286_Closed_Image.style.display='inline'; Codehighlighter1_177_286_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_177_286_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_177_286_Closed_Text.style.display='none'; Codehighlighter1_177_286_Open_Image.style.display='inline'; Codehighlighter1_177_286_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_177_286_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.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_177_286_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> MessageBlockManager</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> mbm </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (mbm </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            mbm </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> MessageBlockManager();<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> mbm;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    MessageBlockManager::MessageBlockManager()<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        : mMutex(NULL)<br><img id=Codehighlighter1_351_354_Open_Image onclick="this.style.display='none'; Codehighlighter1_351_354_Open_Text.style.display='none'; Codehighlighter1_351_354_Closed_Image.style.display='inline'; Codehighlighter1_351_354_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_351_354_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_351_354_Closed_Text.style.display='none'; Codehighlighter1_351_354_Open_Image.style.display='inline'; Codehighlighter1_351_354_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_351_354_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.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_351_354_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    MessageBlockManager::</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">MessageBlockManager()<br><img id=Codehighlighter1_403_417_Open_Image onclick="this.style.display='none'; Codehighlighter1_403_417_Open_Text.style.display='none'; Codehighlighter1_403_417_Closed_Image.style.display='inline'; Codehighlighter1_403_417_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_403_417_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_403_417_Closed_Text.style.display='none'; Codehighlighter1_403_417_Open_Image.style.display='inline'; Codehighlighter1_403_417_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_403_417_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.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_403_417_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        clear();<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> MessageBlockManager::clear()<br><img id=Codehighlighter1_456_579_Open_Image onclick="this.style.display='none'; Codehighlighter1_456_579_Open_Text.style.display='none'; Codehighlighter1_456_579_Closed_Image.style.display='inline'; Codehighlighter1_456_579_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_456_579_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_456_579_Closed_Text.style.display='none'; Codehighlighter1_456_579_Open_Image.style.display='inline'; Codehighlighter1_456_579_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_456_579_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.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_456_579_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (mMutex)<br><img id=Codehighlighter1_474_576_Open_Image onclick="this.style.display='none'; Codehighlighter1_474_576_Open_Text.style.display='none'; Codehighlighter1_474_576_Closed_Image.style.display='inline'; Codehighlighter1_474_576_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_474_576_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_474_576_Closed_Text.style.display='none'; Codehighlighter1_474_576_Open_Image.style.display='inline'; Codehighlighter1_474_576_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span id=Codehighlighter1_474_576_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.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_474_576_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            mBufPool.clear();<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            mDBPool.clear();<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            mMBPool.clear();<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            delete mMutex;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            mMutex </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> NULL;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> MessageBlockManager::create(size_t bufSize, size_t objCount)<br><img id=Codehighlighter1_650_873_Open_Image onclick="this.style.display='none'; Codehighlighter1_650_873_Open_Text.style.display='none'; Codehighlighter1_650_873_Closed_Image.style.display='inline'; Codehighlighter1_650_873_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_650_873_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_650_873_Closed_Text.style.display='none'; Codehighlighter1_650_873_Open_Image.style.display='inline'; Codehighlighter1_650_873_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_650_873_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.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_650_873_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">mMutex)<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            mMutex </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> ACE_SYNCH_MUTEX();<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        mBufPool.create(bufSize, objCount, mMutex);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        mDBPool.create(</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(ACE_Data_Block), objCount, mMutex);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        mMBPool.create(</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(ACE_Message_Block), objCount, mMutex);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    ACE_Message_Block</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> MessageBlockManager::alloc()<br><img id=Codehighlighter1_926_1276_Open_Image onclick="this.style.display='none'; Codehighlighter1_926_1276_Open_Text.style.display='none'; Codehighlighter1_926_1276_Closed_Image.style.display='inline'; Codehighlighter1_926_1276_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_926_1276_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_926_1276_Closed_Text.style.display='none'; Codehighlighter1_926_1276_Open_Image.style.display='inline'; Codehighlighter1_926_1276_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_926_1276_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.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_926_1276_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> buf </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> mBufPool.alloc();<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        ACE_Data_Block</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> db </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> ::</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> (mDBPool.alloc()) ACE_Data_Block(mBufPool.getBlockSize(), <br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            ACE_Message_Block::MB_DATA, static_cast</span><span style="COLOR: #000000"><</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*></span><span style="COLOR: #000000">(buf), </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, ACE_Message_Block::DONT_DELETE, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        ACE_Message_Block</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> mb </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> ::</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> (mMBPool.alloc()) ACE_Message_Block(db, ACE_Message_Block::DONT_DELETE);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        <br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> mb;<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> MessageBlockManager::free(ACE_Message_Block</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> mb)<br><img id=Codehighlighter1_1335_1525_Open_Image onclick="this.style.display='none'; Codehighlighter1_1335_1525_Open_Text.style.display='none'; Codehighlighter1_1335_1525_Closed_Image.style.display='inline'; Codehighlighter1_1335_1525_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1335_1525_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1335_1525_Closed_Text.style.display='none'; Codehighlighter1_1335_1525_Open_Image.style.display='inline'; Codehighlighter1_1335_1525_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_1335_1525_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.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_1335_1525_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 不要调用对象的releaseҎ(gu)</span><span style="COLOR: #008000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        mBufPool.free(mb</span><span style="COLOR: #000000">-></span><span style="COLOR: #0000ff">base</span><span style="COLOR: #000000">());<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        ACE_Data_Block</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> db </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> mb</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">data_block();<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        db</span><span style="COLOR: #000000">->~</span><span style="COLOR: #000000">ACE_Data_Block();<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        mDBPool.free(db);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        mb</span><span style="COLOR: #000000">->~</span><span style="COLOR: #000000">ACE_Message_Block();<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        mMBPool.free(mb);<br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"> </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> namespace om</span></div> <img src ="http://www.shnenglu.com/PeakGao/aggbug/35364.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/PeakGao/" target="_blank">PeakGao</a> 2007-10-28 20:38 <a href="http://www.shnenglu.com/PeakGao/archive/2007/10/28/35364.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ZACE实现的一个内存池http://www.shnenglu.com/PeakGao/archive/2007/10/28/35360.htmlPeakGaoPeakGaoSun, 28 Oct 2007 11:54:00 GMThttp://www.shnenglu.com/PeakGao/archive/2007/10/28/35360.htmlhttp://www.shnenglu.com/PeakGao/comments/35360.htmlhttp://www.shnenglu.com/PeakGao/archive/2007/10/28/35360.html#Feedback0http://www.shnenglu.com/PeakGao/comments/commentRss/35360.htmlhttp://www.shnenglu.com/PeakGao/services/trackbacks/35360.html阅读全文

PeakGao 2007-10-28 19:54 发表评论
]]>
ACE的内存分配介l(一Q?/title><link>http://www.shnenglu.com/PeakGao/archive/2007/10/28/35359.html</link><dc:creator>PeakGao</dc:creator><author>PeakGao</author><pubDate>Sun, 28 Oct 2007 11:42:00 GMT</pubDate><guid>http://www.shnenglu.com/PeakGao/archive/2007/10/28/35359.html</guid><wfw:comment>http://www.shnenglu.com/PeakGao/comments/35359.html</wfw:comment><comments>http://www.shnenglu.com/PeakGao/archive/2007/10/28/35359.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/PeakGao/comments/commentRss/35359.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/PeakGao/services/trackbacks/35359.html</trackback:ping><description><![CDATA[<p>q段旉在看ACEQ以前看q,都好久了Q已l记不v什么东西了Q不好对它评P又好又不好。。?br><br>今天看了下它的内存分配,做了点记录,同大家一起分享下Q还没看完,没有讲到的别问我。。?br><br>一、内存分配器相关<br><br>ACE_Allocator<br>基类<br></p> <p>ACE_New_Allocator : public ACE_Allocator<br>传统的new和delete的动态内存分配器Q主要方法:(x)<br>malloc 分配一定大的内存Q实质就是new char[nbytes]Q?br>calloc 同上Q但带内存初始化<br>free 释放指定的内存块Q实质就是delete[] ptr;<br></p> <p>ACE_Static_Allocator_Base : public ACE_Allocator<br>静态内存分配器Q一ơ性分配一个大内存Q比?00MQ然后在200M内分?已经不能叫分配了)指定大小的内存块<br>成员Q?br>char *buffer_; /// ~冲区首地址<br>size_t size_;  /// ~冲区的大小<br>size_t offset_;/// 当前分配位置</p> <p>主要Ҏ(gu)Q?br>malloc 分配一定大的内存Q实质就是buffer_ + offset_ + nbytesQ当过size_时分配失?br>calloc 同上Q但带内存初始化<br>free 释放指定的内存块Q实质是I操?br>从实质来看只适合预知消耗内存大而且一般不q行释放操作的情况下Q因为释攑֐的内存没有得到应?/p> <p><br><br>template <class MALLOC><br>class ACE_Allocator_Adapter : public ACE_Allocator<br>内存分配适配器,对各U各L(fng)内存分配c进行适配Q之符合ACE_Allocator接口QMALLOC是具体的内存<br>分配实现Q比如上面的ACE_New_AllocatorQACE_Static_Allocator_Base和用戯定义的分配器</p> <p><br>二、空闲列?br><br>template <class T><br>class ACE_Cached_Mem_Pool_Node<br>支持可缓存的对象节点Q可用于I闲链表(free_list)Q实Cset_next和get_next<br>成员Q?br>ACE_Cached_Mem_Pool_Node<T>* next_;<br><br></p> <p>template <class T><br>class ACE_Free_List<br>模版基类<br>主要Ҏ(gu)Q?br>add 加入一个节点到I闲链表<br>remove U除一个空闲节点(l用户用)<br>size 链表当前有效的空闲节点个?br>resize 重新讄链表节点个数<br><br></p> <p>template <class T, class ACE_LOCK><br>class ACE_Locked_Free_List : public ACE_Free_List<T><br>带锁{略的空闲列表,其实除了锁策略,它还有其他几个特点:(x)<br>1、可以定制ؓ(f)一个纯I闲列表Q就是内部不调用new/deleteQ由外部处理Q在构造时mode传入<br>ACE_PURE_FREE_LIST卛_Q默认是ACE_FREE_LIST_WITH_POOLQ表C内部在需要时可以调用new/deleteq行操作Q?br>2、支持水?water mark)的概念,一个低水位(lwm)Q一个高水位(hwm)Q水位只对mode为ACE_FREE_LIST_WITH_POOL时v作用<br>3、当节点不够Ӟ支持一ơ性递增inc个节点(Nq户在构造时传入Q,只对mode为ACE_FREE_LIST_WITH_POOL时v作用<br>主要Ҏ(gu)Q?br>add 加入一个节点(可能是用L(fng)完了的节点)Q如果mode为ACE_PURE_FREE_LIST或者mode为ACE_FREE_LIST_WITH_POOL而size<hwm时允许加入,否则delete?br>remove 从空闲链表移除一个节点(l用户用)Q当mode为ACE_FREE_LIST_WITH_POOL而size<=lwmӞ表示节点数过,pȝ?x)分配inc个节点出来以解燃眉之急,如果是ACE_PURE_FREE_LIST模式Q当节点Cؓ(f)0Ӟremove返回NULL<br>resize 当mode为ACE_FREE_LIST_WITH_POOL时有意义Qresize>sizeӞ分配resize-size个节点,否则释放size-resize个节?/p> <p>举例Q?br>class MyClass<br>{<br> int dummy;<br>public:<br> MyClass() : dummy(99) {}<br> void foo()<br> {<br>  std::cout<<dummy<<std::endl;<br> }<br>};</p> <p>void test()<br>{<br> ACE_Locked_Free_List< ACE_Cached_Mem_Pool_Node< MyClass >, ACE_SYNCH_NULL_MUTEX>  freeList; // 用ACE_SYNCH_NULL_MUTEX不需要同步,{同于单U程<br> <br> // 取出一个(分配一个)<br> ACE_Cached_Mem_Pool_Node< MyClass >* node = freeList.remove();<br> MyClass* mc = node.addr();<br> <br> // 用一?br> mc->foo();<br> <br> // 不用了,释放?br> freeList.add(node);<br>}</p> <p><br> </p> <p>三、各U内存分配策?br>template <class T, class ACE_LOCK><br>class ACE_Cached_Allocator : public ACE_New_Allocator<br>有缓存功能的动态分配器Q采用空闲链表进行节点管理,I闲链表的mode为ACE_PURE_FREE_LISTQ即真正的new/delete由ACE_Cached_Allocator自己操作Q?br>构造时可指定初始化T节点的个敎ͼ节点的大由sizeof(T)军_Q同时进行字节对齐?br>注意Q?br>该分配器内部对Tcd没有q行构造和析构Q所以不适合class使用Q可用于structQƈ且该分配器不支持自动增大内存区(也就是pool_成员在构造时q定了Q?br>Q当内存不够Ӟ分配?x)失败?br>主要成员Q?br>char *pool_; /// 内存?br>ACE_Locked_Free_List<ACE_Cached_Mem_Pool_Node<T>, ACE_LOCK> free_list_;  /// I闲节点理<br>主要Ҏ(gu)Q?br>malloc 分配一个T节点Q实际就?return free_list_.remove()->addr();<br>calloc 同上Q但?x)初始化内存数?br>free 释放一个T节点Q实际就?free_list_.add ((ACE_Cached_Mem_Pool_Node<T> *) ptr);</p> <p><br><br>template <class ACE_LOCK><br>class ACE_Dynamic_Cached_Allocator : public ACE_New_Allocator<br>同上Q但是没有T模版参数Q多了一个成员chunk_size_Q每个节点的大小q戯行定义,同样不存在构造和析构功能Q仅仅停留在固定节点大小的缓冲区的管理,内部没有q行字节寚w?br><br></p> <p>template <size_t POOL_SIZE><br>class ACE_Static_Allocator : public ACE_Static_Allocator_Base<br>Z堆栈的静态内存分配器QPOOL_SIZE为堆栈大?br></p> <img src ="http://www.shnenglu.com/PeakGao/aggbug/35359.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/PeakGao/" target="_blank">PeakGao</a> 2007-10-28 19:42 <a href="http://www.shnenglu.com/PeakGao/archive/2007/10/28/35359.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++实现的一个类ostringstream的类http://www.shnenglu.com/PeakGao/archive/2007/06/07/25737.htmlPeakGaoPeakGaoThu, 07 Jun 2007 08:30:00 GMThttp://www.shnenglu.com/PeakGao/archive/2007/06/07/25737.htmlhttp://www.shnenglu.com/PeakGao/comments/25737.htmlhttp://www.shnenglu.com/PeakGao/archive/2007/06/07/25737.html#Feedback0http://www.shnenglu.com/PeakGao/comments/commentRss/25737.htmlhttp://www.shnenglu.com/PeakGao/services/trackbacks/25737.html阅读全文

PeakGao 2007-06-07 16:30 发表评论
]]>
C++实现的一个缓冲区操作的类iobufferhttp://www.shnenglu.com/PeakGao/archive/2007/06/07/25709.htmlPeakGaoPeakGaoThu, 07 Jun 2007 02:36:00 GMThttp://www.shnenglu.com/PeakGao/archive/2007/06/07/25709.htmlhttp://www.shnenglu.com/PeakGao/comments/25709.htmlhttp://www.shnenglu.com/PeakGao/archive/2007/06/07/25709.html#Feedback0http://www.shnenglu.com/PeakGao/comments/commentRss/25709.htmlhttp://www.shnenglu.com/PeakGao/services/trackbacks/25709.html阅读全文

PeakGao 2007-06-07 10:36 发表评论
]]>
发布一个正则表辑ּ试工具http://www.shnenglu.com/PeakGao/archive/2007/06/01/25271.htmlPeakGaoPeakGaoFri, 01 Jun 2007 05:22:00 GMThttp://www.shnenglu.com/PeakGao/archive/2007/06/01/25271.htmlhttp://www.shnenglu.com/PeakGao/comments/25271.htmlhttp://www.shnenglu.com/PeakGao/archive/2007/06/01/25271.html#Feedback7http://www.shnenglu.com/PeakGao/comments/commentRss/25271.htmlhttp://www.shnenglu.com/PeakGao/services/trackbacks/25271.html
下蝲地址Q?br>http://www.shnenglu.com/Files/PeakGao/xregex.rar

被匹配的文本文g支持鼠标拖曳

正则表达式文本框说明Q?br>本文本框支持n个正则表辑ּ描述Q你可以只启用选择的某一个正则表辑ּQ依赖上方的复选框Q,也支持批处理每个正则表达式(只因我是Z试清除HTML的垃圑ֆ容而开发的Q所以提供了q个功能Q;

几个按钮的功能解释一下:(x)

加蝲默认表达式:(x)是input_regex.txt文g内容d到正则表辑ּ文本框;
加蝲默认内容Q就是将input.txt文gd内容文本框;
执行匚wQ就是一一的q行匚wQ就像记事本的查扑֊能一P
替换选择文本Q不用介l了吧;
单正则全部替换:(x)表示使用正则表达式中的某个正则表辑ּQ如果存在多行)Q和替换文本来对内容文本框中的内容进行全部替换;
多正则全部替换:(x)表示使用正则表达式中的所有表辑ּ和替换文本中的所有文本串Q与表达式对应,?0个表辑ּQ就?0个替换文本)对内Ҏ(gu)本框中的文本q行依序替换?br>
如果有错误发生不要找我,我只是(f)时开发了l自己测试用的,望见谅?br>
演示Q?br>如果你正下载了Q程序能q行h的话Q点“多正则全部替?#8221;看看效果?br>
btw:
我用正在表达式清除Html无用信息发现速度慢的不行Q自己写了个Html的专用解析器Q发现速度比他快上上百倍,真是无话可说。。?

PeakGao 2007-06-01 13:22 发表评论
]]>
CEdit & CRichEdit 使用技?/title><link>http://www.shnenglu.com/PeakGao/archive/2007/04/29/23208.html</link><dc:creator>PeakGao</dc:creator><author>PeakGao</author><pubDate>Sun, 29 Apr 2007 12:59:00 GMT</pubDate><guid>http://www.shnenglu.com/PeakGao/archive/2007/04/29/23208.html</guid><wfw:comment>http://www.shnenglu.com/PeakGao/comments/23208.html</wfw:comment><comments>http://www.shnenglu.com/PeakGao/archive/2007/04/29/23208.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/PeakGao/comments/commentRss/23208.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/PeakGao/services/trackbacks/23208.html</trackback:ping><description><![CDATA[<p><a ><font color=#800080 size=2><u>http://blog.csdn.net/lixiaosan/</u></font></a></p> <p><font color=#800080><u>【原】CEdit & CRichEdit 使用技?/u></font></p> <div id="9h171f9" class=postText>作者:(x)lixiaosan<br>日期Q?4/07/2006<br><br>注:(x)<br>        m_edit1代表ID为IDC_EDIT1的CEdit控g的controlcd的变?br>        m_richedit1代表ID为IDC_RICHEDIT1的CRichEditCtrl控g的controlcd的变?br><br> <hr style="WIDTH: 100%; HEIGHT: 2px"> </hr><span style="COLOR: rgb(153,51,0)">1.讄edit只读属?br><br></span>    Ҏ(gu)一Q?br>                m_edit1.SetReadOnly(TRUE);<br>    Ҏ(gu)二:(x)<br>                ::SendMessage(m_edit1.m_hWnd, EM_SETREADONLY, TRUE, 0);<br><br> <hr style="WIDTH: 100%; HEIGHT: 2px"> </hr><span style="COLOR: rgb(153,51,0)">2.判断edit中光标状态ƈ得到选中内容(richedit同样适用)<br><br></span>        int nStart, nEnd;<br>        CString strTemp;<br><br>        m_edit1.GetSel(nStart, nEnd);<br>        if(nStart == nEnd)<br>        {<br>            strTemp.Format(_T("光标?d"), nStart);<br>            AfxMessageBox(strTemp);<br>        }<br>        else<br>        {<br>            //得到edit选中的内?nbsp;   <br>            m_edit1.GetWindowText(strTemp);<br>            strTemp = strTemp.Mid(nStart) - strTemp.Mid(nEnd);<br>            AfxMessageBox(strTemp);<br>        }<br>    注:(x)GetSel后,如果nStart和nEndQ表明光标处于某个位|(直观来看是光标在闪动)Q?br>             如果nStart和nEnd不相{,表明用户在edit中选中了一D内宏V?br><br> <hr style="WIDTH: 100%; HEIGHT: 2px"> </hr><span style="COLOR: rgb(153,51,0)">3.在edit最后添加字W串<br><br></span>        CString str;<br>        m_edit1.SetSel(-1, -1);<br>        m_edit1.ReplaceSel(str);<br><br> <hr style="WIDTH: 100%; HEIGHT: 2px"> </hr><span style="COLOR: rgb(153,51,0)">4.随输入自动滚动到最后一?richedit同样适用)<br><br></span>    Ҏ(gu)一Q(摘自msdnQ?br>        // The pointer to my edit.<br>        extern CEdit* pmyEdit;<br>        int nFirstVisible = pmyEdit->GetFirstVisibleLine();<br><br>        // Scroll the edit control so that the first visible line<br>        // is the first line of text.<br>        if (nFirstVisible > 0)<br>        {<br>            pmyEdit->LineScroll(-nFirstVisible, 0);<br>        }<br>    Ҏ(gu)二:(x)<br>        m_richedit.PostMessage(WM_VSCROLL, SB_BOTTOM, 0);<br><br> <hr style="WIDTH: 100%; HEIGHT: 2px"> </hr><span style="COLOR: rgb(153,51,0)">5.如何限制edit输入指定字符<br><br></span>   可以从CEditz一个类Q添加WM_CHAR消息映射。下面一个例子实C限定输入16q制字符的功能?br><br>   void CMyHexEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) <br>   {<br>        if ( (nChar >= '0' && nChar <= '9') ||<br>             (nChar >= 'a' && nChar <= 'f') ||<br>             (nChar >= 'A' && nChar <= 'F') ||<br>              nChar == VK_BACK || <br>              nChar == VK_DELETE)    //msdn的virtual key<br>       {<br>            CEdit::OnChar(nChar, nRepCnt, nFlags);<br>        }     <br>   }<br><br> <hr style="WIDTH: 100%; HEIGHT: 2px"> </hr><span style="COLOR: rgb(153,51,0)">6.如何使用richedit<br><br></span>    dAfxInitRichEdit();<br>       CxxxApp::InitInstance()<br>        {<br>             AfxInitRichEdit();<br>          .............<br>       }<br><br>   AfxInitRichEdit()功能Q装?RichEdit 1.0 Control (RICHED32.DLL).<br><br> <hr style="WIDTH: 100%; HEIGHT: 2px"> </hr><span style="COLOR: rgb(153,51,0)">7.如何使用richedit2.0 or richedit3.0<br><br></span>    使用原因Q由于RichEdit2.0A自动为宽字符QWideCharQ,所以它可以解决中文q以及(qing)一些汉字问?br><br>    Ҏ(gu)一Q(msdn上的做法Q适用于用VC.NET?qing)以后版本创建的工程Q?br>            To update rich edit controls in existing Visual C++ applications to version 2.0,<br>            open the .RC file as text, change the class name of each rich edit control from   "RICHEDIT" to  "RichEdit20a".<br>            Then replace the call to AfxInitRichEdit with AfxInitRichEdit2.<br>    Ҏ(gu)二:(x)以对话框ZQ?br>       (1)    增加一全局变量 HMODULE hMod;<br>       (2)    在CxxxApp::InitInstance()中添加一句hMod = LoadLibrary(_T("riched20.dll"));<br>              在CxxxApp::ExitInstance()中添加一句FreeLibrary(hMod);<br>       (3)      在对话框上放一个richeditQ文本方式打开.rc文g修改该richedit控g的类?RICHEDIT" to  "RichEdit20a".<br>       (4)      在对话框头文件添?CRichEditCtrl m_richedit;<br>              在OnInitDialog中添?m_richedit.SubclassDlgItem(IDC_RICHEDIT1, this);<br><br> <hr style="WIDTH: 100%; HEIGHT: 2px"> </hr><span style="COLOR: rgb(153,51,0)">8.改变richedit指定区域的颜色及(qing)字体<br><br></span>        CHARFORMAT cf;<br>        ZeroMemory(&cf, sizeof(CHARFORMAT));<br>        cf.cbSize = sizeof(CHARFORMAT);<br>        cf.dwMask = CFM_BOLD | CFM_COLOR | CFM_FACE |<br>                            CFM_ITALIC | CFM_SIZE | CFM_UNDERLINE;<br>        cf.dwEffects = 0;<br>        cf.yHeight = 12*12;//文字高度<br>        cf.crTextColor = RGB(200, 100, 255); //文字颜色<br>        strcpy(cf.szFaceName ,_T("隶书"));//讄字体<br>    <br>        m_richedit1.SetSel(1, 5); //讄处理区域<br>        m_richedit1.SetSelectionCharFormat(cf);<br><br> <hr style="WIDTH: 100%; HEIGHT: 2px"> </hr><span style="COLOR: rgb(153,51,0)">9.讄行间距(只适用于richedit2.0Q?br><br></span>        PARAFORMAT2 pf;<br>        pf2.cbSize = sizeof(PARAFORMAT2);<br>        pf2.dwMask = PFM_LINESPACING | PFM_SPACEAFTER;<br>        pf2.dyLineSpacing = 200;<br>        pf2.bLineSpacingRule  = 4;<br>        m_richedit.SetParaFormat(pf2);<br><br> <hr style="WIDTH: 100%; HEIGHT: 2px"> </hr><span style="COLOR: rgb(153,51,0)">10.richedit插入位图<br><br></span>Q220844QHow to insert a bitmap into an RTF document using the RichEdit control in Visual C++ 6.0<br><a ><font color=#000033 size=2><u>http://support.microsoft.com/default.aspx?scid=kb;en-us;220844</u></font></a><br><a ><font color=#000033 size=2><u>http://www.codeguru.com/Cpp/controls/richedit/article.php/c2417/</u></font></a><br><a ><u><font color=#000033 size=2>http://www.codeguru.com/Cpp/controls/richedit/article.php/c5383/</font></u></a><br><br><u><font size=2><font color=#000033> <hr style="WIDTH: 100%; HEIGHT: 2px"> </hr></font></font></u><span style="COLOR: rgb(153,51,0)">11.richedit插入gif动画<br><a ><br></a></span><a><u><font color=#000033 size=2>http://www.codeproject.com/richedit/AnimatedEmoticon.asp</font></u></a><br><br><u><font size=2><font color=#000033> <hr style="WIDTH: 100%; HEIGHT: 2px"> </hr></font></font></u><span style="COLOR: rgb(153,51,0)">12.richedit嵌入ole对象<br><br></span><a ><u><font color=#000033 size=2>http://support.microsoft.com/kb/141549/en-us</font></u></a><br><br><u><font size=2><font color=#000033> <hr style="WIDTH: 100%; HEIGHT: 2px"> </hr></font></font></u><span style="COLOR: rgb(153,51,0)">13.使richedit选中内容只读<br><br></span><a ><u><font color=#000033 size=2>http://www.codeguru.com/cpp/controls/richedit/article.php/c2401/</font></u></a><br><br><u><font size=2><font color=#000033> <hr style="WIDTH: 100%; HEIGHT: 2px"> </hr></font></font></u><span style="COLOR: rgb(153,51,0)">14.打印richedit</span><span style="COLOR: rgb(0,0,0)"><br><br><a ><u><font color=#000033 size=2>http://www.protext.com/MFC/RichEdit3.htm</font></u></a></span><br><a ></a><br><u><font size=2><font color=#000033> <hr style="WIDTH: 100%; HEIGHT: 2px"> </hr></font></font></u><span style="COLOR: rgb(153,51,0)">15.richeidt用于聊天消息H口<br><br></span><a ><font color=#000033 size=2><u>http://www.vckbase.com/document/viewdoc/?id=1087</u></font></a><br><a ><font color=#000033 size=2><u>http://www.codeproject.com/richedit/chatrichedit.asp</u></font></a><br><a ><u><font color=#000033 size=2>http://www.codeguru.com/Cpp/controls/richedit/article.php/c2395/</font></u></a><br><br><u><font size=2><font color=#000033> <hr style="WIDTH: 100%; HEIGHT: 2px"> </hr></font></font></u><span style="COLOR: rgb(153,51,0)">16.解决richedit的EN_SETFOCUS和EN_KILLFOCUS无响应的问题<br><br></span><a ><u><font color=#000033 size=2>http://support.microsoft.com/kb/181664/en-us</font></u></a><br><br><u><font size=2><font color=#000033> <hr style="WIDTH: 100%; HEIGHT: 2px"> </hr></font></font></u><span style="COLOR: rgb(153,51,0)">17.richedit拼写(g)?br><br></span><a ><u><font color=#000033 size=2>http://www.codeproject.com/com/AutoSpellCheck.asp</font></u></a><br><br><u><font size=2><font color=#000033> <hr style="WIDTH: 100%; HEIGHT: 2px"> </hr></font></font></u><span style="COLOR: rgb(153,51,0)">18.改变edit背景?br><br></span>Q117778QHow to change the background color of an MFC edit control<br><a ><u><font color=#000033 size=2>http://support.microsoft.com/kb/117778/en-us</font></u></a><br><br><u><font size=2><font color=#000033> <hr style="WIDTH: 100%; HEIGHT: 2px"> </hr></font></font></u><span style="COLOR: rgb(153,51,0)">19.当edit控g的父H口属性是带标题栏WS_CAPTION和子H口WS_CHILDӞ不能讄焦点SetFocus<br><br></span>Q230587QPRB: Can't Set Focus to an Edit Control When its Parent Is an Inactive Captioned Child Window<br style="COLOR: rgb(153,51,0)"><br><span style="COLOR: rgb(153,51,0)"><a ><u><font size=2><span style="COLOR: rgb(153,51,0)">http://support.microsoft.com/kb/230587/en-us</span><br style="COLOR: rgb(153,51,0)"><br></font></u></a></span><br><u><font size=2> <hr style="WIDTH: 100%; HEIGHT: 2px"> </hr></font></u><span style="COLOR: rgb(153,51,0)">20. 在Edit中回车时Q会(x)退出对话框 </span><br><br>选中Edit的风格Want Return?br><br>MSDN的解释如下:(x)<br><font size=+0><font face=verdana,arial,helvetica size=2><strong>ES_WANTRETURN</strong>   Specifies that a carriage return be inserted when the user presses the ENTER key while entering text into a multiple-line edit control in a dialog box. Without this style, pressing the ENTER key has the same effect as pressing the dialog box's default pushbutton. This style has no effect on a single-line edit control.<br><br></font></font> <hr style="WIDTH: 100%; HEIGHT: 2px"> </hr><span style="COLOR: rgb(153,51,0)">21. 动态创建的edit没有Ҏ(gu)的问?/span><br><br>    m_edit.Create(....);<br>    m_edit.ModifyStyleEx(0, WS_EX_CLIENTEDGE, SWP_DRAWFRAME);<br> <hr style="WIDTH: 100%; HEIGHT: 2px"> </hr><span style="COLOR: rgb(153,51,0)">22. 一个能昄RTFQoleQ包括gifQ?wmvQexcel QpptQ的例子</span><br><br><a ><u><font color=#000033 size=2>http://www.codeproject.com/richedit/COleRichEditCtrl.asp</font></u></a><br></div> <img src ="http://www.shnenglu.com/PeakGao/aggbug/23208.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/PeakGao/" target="_blank">PeakGao</a> 2007-04-29 20:59 <a href="http://www.shnenglu.com/PeakGao/archive/2007/04/29/23208.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>对list的查扄另一U作?/title><link>http://www.shnenglu.com/PeakGao/archive/2006/06/10/8383.html</link><dc:creator>PeakGao</dc:creator><author>PeakGao</author><pubDate>Sat, 10 Jun 2006 08:46:00 GMT</pubDate><guid>http://www.shnenglu.com/PeakGao/archive/2006/06/10/8383.html</guid><wfw:comment>http://www.shnenglu.com/PeakGao/comments/8383.html</wfw:comment><comments>http://www.shnenglu.com/PeakGao/archive/2006/06/10/8383.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/PeakGao/comments/commentRss/8383.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/PeakGao/services/trackbacks/8383.html</trackback:ping><description><![CDATA[大家用了stl的list后都知道Q他的节点在内存中的位置是固定的Q但是当删除或查找某个指定节Ҏ(gu)需要遍历,q样当list很大Ӟq个遍历q程未免有些性能诟病。当然大家会(x)很容易想到hash_mapQ但是hash_map在节Ҏ(gu)过一定数量后也会(x)q行“扩容”操作,q样存在大量的对象的搬迁。我们看看list的特点:(x)l构单,节点的内存地址固定Q添加删除操作快P再看看hash_map的特点:(x)查找速度快,节点的内存地址可能不固定(依赖是否扩容Q,如果我们两者结合可以解x些特D应用场合(指那些可能需要记录节点内存位|的场合Q。用一个list和一个hash_map来管理一个数据列表,list记录具体的节点的数据Qhash_map用于记录list的P代器地址Q这样需要查找一个键gؓ(f)key的对象在list中的节点Ӟ可以通过hash_map来进行定位,具体性能如何没有试q,应该不会(x)比list的直接遍历查找慢Q大家可以自p试?img src ="http://www.shnenglu.com/PeakGao/aggbug/8383.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/PeakGao/" target="_blank">PeakGao</a> 2006-06-10 16:46 <a href="http://www.shnenglu.com/PeakGao/archive/2006/06/10/8383.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.fotoblog.cn" target="_blank">ۿƷþ</a>| <a href="http://www.usgold.cn" target="_blank">99þþƷҹһ</a>| <a href="http://www.daami.cn" target="_blank">þþþþùƷŮ</a>| <a href="http://www.ajchugui.cn" target="_blank">þõӰ</a>| <a href="http://www.jrbjh.cn" target="_blank">ŷۺϾþþ</a>| <a href="http://www.focuan.cn" target="_blank">þۺۺϾþ97ɫ</a>| <a href="http://www.garden-tools.com.cn" target="_blank">ƷþþþþĻ</a>| <a href="http://www.6159vs.cn" target="_blank">þþþþþþƷɫ</a>| <a href="http://www.orzdream.cn" target="_blank">þ99Ʒþþþ</a>| <a href="http://www.semtmtw.cn" target="_blank">þù㽶Ƶ</a>| <a href="http://www.norid.cn" target="_blank">þþƷ99͵</a>| <a href="http://www.kengsai.cn" target="_blank">þҹɫƷ</a>| <a href="http://www.tafeemanager.cn" target="_blank">99þɫĻ</a>| <a href="http://www.wongceline.cn" target="_blank">þĻ</a>| <a href="http://www.51xwj.cn" target="_blank">ۿþ</a>| <a href="http://www.so006.cn" target="_blank">þþ뾫Ʒպ˳</a>| <a href="http://www.vkgx.cn" target="_blank">þ99Ʒþþþþ9</a>| <a href="http://www.ekqz.cn" target="_blank">þþþAVƬ</a>| <a href="http://www.lakesys.com.cn" target="_blank">þþþùɫAVѿͼƬ</a>| <a href="http://www.hp6000.cn" target="_blank">˾Ʒþһ</a>| <a href="http://www.gongnian.cn" target="_blank">ҹAVëƬþ</a>| <a href="http://www.xyp020.cn" target="_blank">Ʒþþþþ </a>| <a href="http://www.b8800.cn" target="_blank">þþþ뾫Ʒ</a>| <a href="http://www.hhh328.cn" target="_blank">ĻƷѾþ</a>| <a href="http://www.obsessions.cn" target="_blank">91龫Ʒ91þþþ</a>| <a href="http://www.gybyz.cn" target="_blank">Ʒþþþþ</a>| <a href="http://www.qvcz.cn" target="_blank">һɫþHEZYO</a>| <a href="http://www.chqlt.cn" target="_blank">˺ݺۺϾþ</a>| <a href="http://www.tongshuntaoci.cn" target="_blank">2021˾Ʒþ</a>| <a href="http://www.00175.com.cn" target="_blank">wwwԾþþcom</a>| <a href="http://www.usgold.cn" target="_blank">Ʒ18þþþþvr</a>| <a href="http://www.qd-online.cn" target="_blank">þҹ³Ƭ</a>| <a href="http://www.ogus.cn" target="_blank">þݺҹҹavapp </a>| <a href="http://www.0371trip.cn" target="_blank">Ʒһþþþþþվ</a>| <a href="http://www.renshushu.cn" target="_blank">þþþþþƷþþþ</a>| <a href="http://www.cdake.cn" target="_blank">ҹ91þø</a>| <a href="http://www.zhibonet.cn" target="_blank">þþþùAV鶹</a>| <a href="http://www.jihejingjia.cn" target="_blank">þ¾ƷĻ</a>| <a href="http://www.yunfu2.cn" target="_blank">ɫۺϾžþ </a>| <a href="http://www.q812.cn" target="_blank">þ</a>| <a href="http://www.jlife-pal.cn" target="_blank">ɫۺϾþ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>