﻿<?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++博客-3D FPS -随笔分类-C++</title><link>http://www.cppblog.com/jimsmorong/category/7733.html</link><description>1234567890</description><language>zh-cn</language><lastBuildDate>Wed, 25 Jul 2012 07:55:05 GMT</lastBuildDate><pubDate>Wed, 25 Jul 2012 07:55:05 GMT</pubDate><ttl>60</ttl><item><title>小小小小开源正则表达式测试工具</title><link>http://www.cppblog.com/jimsmorong/archive/2012/07/11/182874.html</link><dc:creator>DK_jims</dc:creator><author>DK_jims</author><pubDate>Wed, 11 Jul 2012 11:57:00 GMT</pubDate><guid>http://www.cppblog.com/jimsmorong/archive/2012/07/11/182874.html</guid><wfw:comment>http://www.cppblog.com/jimsmorong/comments/182874.html</wfw:comment><comments>http://www.cppblog.com/jimsmorong/archive/2012/07/11/182874.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jimsmorong/comments/commentRss/182874.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jimsmorong/services/trackbacks/182874.html</trackback:ping><description><![CDATA[<div>
<p><font style="background-color: #cce8cf" color="#000000" face="Verdana">-1 有更新<br /></font>&nbsp; &nbsp;1. 中文化</p><div>&nbsp;&nbsp;&nbsp;2. 可调整大小</div><div>&nbsp;&nbsp;&nbsp;3. 有个下拉框 可以选择常用的表达式</div><div>&nbsp;&nbsp;&nbsp;4. 玩死人的正则表达式 来解析一个文本格式 好过引</div><div>&nbsp;&nbsp;&nbsp;5. 改了图标</div><div>-0.1 图片:<br /><img src="http://www.cppblog.com/images/cppblog_com/jimsmorong/snap2.png" width="901" height="711" alt="" /></div><font style="background-color: #cce8cf; " color="#000000" face="Verdana"><br />-0.2 exe 下载:&nbsp;</font><a href="http://mregtest.googlecode.com/files/MRegTest%20v0.1.7z">http://mregtest.googlecode.com/files/MRegTest%20v0.1.7z<font color="#000000" face="Verdana" style="background-color: #cce8cf; ">&nbsp;</font></a><font color="#000000" face="Verdana" style="background-color: #cce8cf; "></font><br /><font style="background-color: #cce8cf; " color="#000000" face="Verdana"><br />-0.3 小程序功能有限 非常非常的有限 没什么说的<br />&nbsp; &nbsp; &nbsp; 程序有些好玩<br />&nbsp; &nbsp; &nbsp; 有个配置的文本&nbsp;<br />&nbsp; 格式是这样的 我的小程序会解析的这样的文本&nbsp;<br /></font><div>id 0.IP Adress</div><div>{</div><div><span style="white-space:pre">	</span>source text = "127.0.0.1";<span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span>regex text &nbsp;= "(\d+).(\d+).(\d+).(\d+)";</div><div><span style="white-space:pre">	</span>replace text &nbsp; &nbsp;= "";</div><div>};</div><font style="background-color: #cce8cf; " color="#000000" face="Verdana">代码是这样的:&nbsp;<br /></font><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;wregex&nbsp;rex(L"id\\s+[0-9]+\\.(.*)\\s*\\{\\s+source\\s+text\\s*=\\s*\"(.*)\";\\s*\\s+regex\\s+text\\s*=\\s*\"(.*)\";\\s*\\s+replace\\s+text\\s*=\\s*\"(.*)\";\\s*\\};");<br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wstring::const_iterator&nbsp;text_beg&nbsp;=&nbsp;text.begin();<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wstring::const_iterator&nbsp;text_end&nbsp;=&nbsp;text.end();<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wsmatch&nbsp;rmatch;<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(&nbsp;regex_search(text_beg,text_end,rmatch,rex))<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;room&nbsp;lroom;<br /><span style="color: #008080; ">10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(&nbsp;rmatch.size()&nbsp;==&nbsp;5)<br /><span style="color: #008080; ">11</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /><span style="color: #008080; ">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lroom.name&nbsp;=&nbsp;rmatch[1].str();<br /><span style="color: #008080; ">13</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lroom.source_text&nbsp;=&nbsp;rmatch[2].str();<br /><span style="color: #008080; ">14</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lroom.regex_text&nbsp;=&nbsp;rmatch[3].str();<br /><span style="color: #008080; ">15</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lroom.replace_text&nbsp;=&nbsp;rmatch[4].str();<br /><span style="color: #008080; ">16</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rooms.push_back(lroom);<br /><span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text_beg&nbsp;=&nbsp;rmatch[0].second;<br /><span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</div><font style="background-color: #cce8cf; " color="#000000" face="Verdana"><br />-0.4 是不是很好玩呢?<br /></font>&nbsp; &nbsp;相关分解可以查看源码 &nbsp;alway_regex_fuck.txt&nbsp;<br /><br />-0.5 还有回车键禁了 回车不会关闭对话框<br /><br /><br /><font style="background-color: #cce8cf; " color="#000000" face="Verdana"><br /><br /><br />0. 标题：　小小小小开源正则表达式测试工具</font><p>&nbsp;</p>
<p><font style="background-color: #cce8cf" color="#000000" face="Verdana">1. 前言:&nbsp;C++标准库 有正则表达式支持了<br />&nbsp;&nbsp;&nbsp;vs2008 sp1 里有&nbsp; 在命名空间 std::tr1里</font></p>
<p><font style="background-color: #cce8cf" color="#000000" face="Verdana">2. 正文:&nbsp;这个正则表达式是大话题 我就不多说了 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有道是 编程不懂正则 不如回家种番薯</font></p>
<p><font style="background-color: #cce8cf" color="#000000" face="Verdana">3. 附录:&nbsp;匹配 数字&nbsp;&nbsp;&nbsp; [0-9] or \d<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配 空白的&nbsp; [ \t\r\n] or \s<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配 字符&nbsp;&nbsp;&nbsp; [A-Za-z]&nbsp; or \w</font></p>
<p><font style="background-color: #cce8cf" color="#000000" face="Verdana">4. 附录2:&nbsp;地址开源在这里 <a href="http://code.google.com/p/mregtest/">http://code.google.com/p/mregtest/</a></font></p>
<p><font style="background-color: #cce8cf" color="#000000" face="Verdana">5. 附录3:&nbsp;截图:<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/jimsmorong/mregtest.png" width="642" height="539" /><br /><br /></font></p>
<p><font style="background-color: #cce8cf" color="#000000" face="Verdana">6. exe下载: 正则表达式小小小工具&nbsp;<a href="http://mregtest.googlecode.com/files/MRegTest.exe">http://mregtest.googlecode.com/files/MRegTest.exe</a></font></p></div><img src ="http://www.cppblog.com/jimsmorong/aggbug/182874.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jimsmorong/" target="_blank">DK_jims</a> 2012-07-11 19:57 <a href="http://www.cppblog.com/jimsmorong/archive/2012/07/11/182874.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>com安全数组类型</title><link>http://www.cppblog.com/jimsmorong/archive/2011/12/25/162786.html</link><dc:creator>DK_jims</dc:creator><author>DK_jims</author><pubDate>Sun, 25 Dec 2011 10:43:00 GMT</pubDate><guid>http://www.cppblog.com/jimsmorong/archive/2011/12/25/162786.html</guid><wfw:comment>http://www.cppblog.com/jimsmorong/comments/162786.html</wfw:comment><comments>http://www.cppblog.com/jimsmorong/archive/2011/12/25/162786.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jimsmorong/comments/commentRss/162786.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jimsmorong/services/trackbacks/162786.html</trackback:ping><description><![CDATA[<p><font style="background-color: #cce8cc" face="Verdana" color="#000000">com安全数组类型</font></p>
<p><font style="background-color: #cce8cc" face="Verdana" color="#000000">创建 复制数据给它 例如这样:</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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080">&nbsp;1</span><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #008000">//</span><span style="color: #008000">&nbsp;set&nbsp;up&nbsp;safearray&nbsp;-&nbsp;&nbsp;SAFEARRAY&nbsp;is&nbsp;defined&nbsp;OAIDL.H</span><span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;2</span><span style="color: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;SAFEARRAY&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">psa;<br /></span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /></span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;create&nbsp;a&nbsp;safe&nbsp;array&nbsp;to&nbsp;store&nbsp;the&nbsp;stream&nbsp;data</span><span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;5</span><span style="color: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;psa&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;SafeArrayCreateVector(&nbsp;VT_UI1,&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;llen&nbsp;);<br /></span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /></span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;pointers&nbsp;to&nbsp;byte&nbsp;arrays</span><span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;8</span><span style="color: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;unsigned&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">pData&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;NULL;<br /></span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /></span><span style="color: #008080">10</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;get&nbsp;a&nbsp;pointer&nbsp;to&nbsp;the&nbsp;safe&nbsp;array.&nbsp;Locks&nbsp;the&nbsp;array.</span><span style="color: #008000"><br /></span><span style="color: #008080">11</span><span style="color: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;SafeArrayAccessData(&nbsp;psa,&nbsp;(</span><span style="color: #0000ff">void</span><span style="color: #000000">**</span><span style="color: #000000">)</span><span style="color: #000000">&amp;</span><span style="color: #000000">pData&nbsp;);<br /></span><span style="color: #008080">12</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;<br /></span><span style="color: #008080">13</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;copy&nbsp;the&nbsp;memory&nbsp;file&nbsp;into&nbsp;the&nbsp;safearray</span><span style="color: #008000"><br /></span><span style="color: #008080">14</span><span style="color: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;memcpy(&nbsp;pData,&nbsp;pMemData,&nbsp;llen&nbsp;);<br /></span><span style="color: #008080">15</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /></span><span style="color: #008080">16</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;clean&nbsp;up&nbsp;buffer</span><span style="color: #008000"><br /></span><span style="color: #008080">17</span><span style="color: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;delete&nbsp;pMemData;<br /></span><span style="color: #008080">18</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;<br /></span><span style="color: #008080">19</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;unlock&nbsp;access&nbsp;to&nbsp;safearray</span><span style="color: #008000"><br /></span><span style="color: #008080">20</span><span style="color: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;SafeArrayUnaccessData(psa);<br /></span><span style="color: #008080">21</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /></span><span style="color: #008080">22</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;return&nbsp;a&nbsp;pointer&nbsp;to&nbsp;a&nbsp;SAFEARRAY&nbsp;allocated&nbsp;here</span><span style="color: #008000"><br /></span><span style="color: #008080">23</span><span style="color: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;psa;<br /></span><span style="color: #008080">24</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /></span><span style="color: #008080">25</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<p><br /><br /></font></p>
<p><font style="background-color: #cce8cc" face="Verdana" color="#000000">&nbsp;</font><font style="background-color: #cce8cc" face="Verdana" color="#000000">接收 复制数据给别人 例如这样:&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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080">&nbsp;1</span><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;lLength;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;number&nbsp;of&nbsp;bytes</span><span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;2</span><span style="color: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">pBuffer;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;buffer&nbsp;pointer<br /></span><span style="color: #008080">&nbsp;3</span><span style="color: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;<br /></span><span style="color: #008080">&nbsp;4</span><span style="color: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;lock&nbsp;access&nbsp;to&nbsp;array&nbsp;data</span><span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;5</span><span style="color: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;SafeArrayAccessData(&nbsp;psa,&nbsp;(</span><span style="color: #0000ff">void</span><span style="color: #000000">**</span><span style="color: #000000">)</span><span style="color: #000000">&amp;</span><span style="color: #000000">pBuffer&nbsp;&nbsp;);<br /></span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /></span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;get&nbsp;number&nbsp;of&nbsp;elements&nbsp;in&nbsp;array.&nbsp;This&nbsp;is&nbsp;the&nbsp;number&nbsp;of&nbsp;bytes</span><span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;8</span><span style="color: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;lLength&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;psa</span><span style="color: #000000">-&gt;</span><span style="color: #000000">rgsabound</span><span style="color: #000000">-&gt;</span><span style="color: #000000">cElements;<br /></span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /></span><span style="color: #008080">10</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;attach&nbsp;the&nbsp;buffer&nbsp;to&nbsp;the&nbsp;memory&nbsp;file</span><span style="color: #008000"><br /></span><span style="color: #008080">11</span><span style="color: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;memfile.Attach((unsigned&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">*</span><span style="color: #000000">)pBuffer,&nbsp;lLength);<br /></span><span style="color: #008080">12</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /></span><span style="color: #008080">13</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;start&nbsp;at&nbsp;beginning&nbsp;of&nbsp;buffer</span><span style="color: #008000"><br /></span><span style="color: #008080">14</span><span style="color: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;memfile.SeekToBegin();<br /></span><span style="color: #008080">15</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /></span><span style="color: #008080">16</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;create&nbsp;an&nbsp;archive&nbsp;with&nbsp;the&nbsp;attached&nbsp;memory&nbsp;file</span><span style="color: #008000"><br /></span><span style="color: #008080">17</span><span style="color: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;CArchive&nbsp;ar(</span><span style="color: #000000">&amp;</span><span style="color: #000000">memfile,&nbsp;CArchive::load&nbsp;</span><span style="color: #000000">|</span><span style="color: #000000">&nbsp;CArchive::bNoFlushOnDelete);<br /></span><span style="color: #008080">18</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /></span><span style="color: #008080">19</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;document&nbsp;pointer&nbsp;is&nbsp;not&nbsp;used</span><span style="color: #008000"><br /></span><span style="color: #008080">20</span><span style="color: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;ar.m_pDocument&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;NULL;<br /></span><span style="color: #008080">21</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /></span><span style="color: #008080">22</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;inflate&nbsp;the&nbsp;object&nbsp;and&nbsp;get&nbsp;the&nbsp;pointer</span><span style="color: #008000"><br /></span><span style="color: #008080">23</span><span style="color: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;rpObj&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ar.ReadObject(</span><span style="color: #000000">0</span><span style="color: #000000">);<br /></span><span style="color: #008080">24</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /></span><span style="color: #008080">25</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;close&nbsp;the&nbsp;archive</span><span style="color: #008000"><br /></span><span style="color: #008080">26</span><span style="color: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;ar.Close();<br /></span><span style="color: #008080">27</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /></span><span style="color: #008080">28</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Note:&nbsp;pBuffer&nbsp;is&nbsp;freed&nbsp;when&nbsp;the&nbsp;SAFEARRAY&nbsp;is&nbsp;destroyed<br /></span><span style="color: #008080">29</span><span style="color: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Detach&nbsp;the&nbsp;buffer&nbsp;and&nbsp;close&nbsp;the&nbsp;file</span><span style="color: #008000"><br /></span><span style="color: #008080">30</span><span style="color: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;pBuffer&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">char</span><span style="color: #000000">*</span><span style="color: #000000">)&nbsp;memfile.Detach();<br /></span><span style="color: #008080">31</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /></span><span style="color: #008080">32</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /></span><span style="color: #008080">33</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;release&nbsp;the&nbsp;safearray&nbsp;buffer</span><span style="color: #008000"><br /></span><span style="color: #008080">34</span><span style="color: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;SafeArrayUnaccessData(&nbsp;psa&nbsp;);<br /></span><span style="color: #008080">35</span><span style="color: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<p><br /><br /><br /></font></p>
<p><font style="background-color: #cce8cc" face="Verdana" color="#000000"><br /></font></p><img src ="http://www.cppblog.com/jimsmorong/aggbug/162786.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jimsmorong/" target="_blank">DK_jims</a> 2011-12-25 18:43 <a href="http://www.cppblog.com/jimsmorong/archive/2011/12/25/162786.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>微软 CRT 函数表</title><link>http://www.cppblog.com/jimsmorong/archive/2011/11/15/160212.html</link><dc:creator>DK_jims</dc:creator><author>DK_jims</author><pubDate>Tue, 15 Nov 2011 15:55:00 GMT</pubDate><guid>http://www.cppblog.com/jimsmorong/archive/2011/11/15/160212.html</guid><wfw:comment>http://www.cppblog.com/jimsmorong/comments/160212.html</wfw:comment><comments>http://www.cppblog.com/jimsmorong/archive/2011/11/15/160212.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jimsmorong/comments/commentRss/160212.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jimsmorong/services/trackbacks/160212.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp;微软 CRT 函数表用几页word全部写出来  Mrs Crt function 文挡   Mrs Crt function 文挡   &nbsp;  版本信息:          版本         日期         作者         修改内容             1.0         2011-10-27         Mrs       ...&nbsp;&nbsp;<a href='http://www.cppblog.com/jimsmorong/archive/2011/11/15/160212.html'>阅读全文</a><img src ="http://www.cppblog.com/jimsmorong/aggbug/160212.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jimsmorong/" target="_blank">DK_jims</a> 2011-11-15 23:55 <a href="http://www.cppblog.com/jimsmorong/archive/2011/11/15/160212.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>！C++ 文本读写 ！</title><link>http://www.cppblog.com/jimsmorong/archive/2009/01/31/72745.html</link><dc:creator>DK_jims</dc:creator><author>DK_jims</author><pubDate>Sat, 31 Jan 2009 11:46:00 GMT</pubDate><guid>http://www.cppblog.com/jimsmorong/archive/2009/01/31/72745.html</guid><wfw:comment>http://www.cppblog.com/jimsmorong/comments/72745.html</wfw:comment><comments>http://www.cppblog.com/jimsmorong/archive/2009/01/31/72745.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/jimsmorong/comments/commentRss/72745.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jimsmorong/services/trackbacks/72745.html</trackback:ping><description><![CDATA[C++ 文本读写<br><br><br>C++文本读写保存 如果是中文 用wofstream 宽字保存 中文字<br><br>竟然不可以<br><br>原来 是要用一个local 本地环境才可以的<br><br>代码如下：<br><br>#include "stdafx.h"<br>#include &lt;fstream&gt;<br>//#include &lt;&gt;<br>int _tmain(int argc, _TCHAR* argv[])<br>{<br>&nbsp;&nbsp;&nbsp; std::locale::global(std::locale(""));<br><br>&nbsp;&nbsp;&nbsp; wchar_t a[140]= L"中中";<br>&nbsp;&nbsp;&nbsp; std::wifstream f;<br>&nbsp;&nbsp;&nbsp; f.open(L"1.txt");<br>&nbsp;&nbsp;&nbsp; //f.write(a,10);<br>&nbsp;&nbsp;&nbsp; f.read(a,140);<br><br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; f.close();<br>&nbsp;&nbsp;&nbsp; //getchar();<br>&nbsp;&nbsp;&nbsp; return 0;<br>}<br><img src ="http://www.cppblog.com/jimsmorong/aggbug/72745.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jimsmorong/" target="_blank">DK_jims</a> 2009-01-31 19:46 <a href="http://www.cppblog.com/jimsmorong/archive/2009/01/31/72745.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>stl::sort</title><link>http://www.cppblog.com/jimsmorong/archive/2009/01/12/71768.html</link><dc:creator>DK_jims</dc:creator><author>DK_jims</author><pubDate>Sun, 11 Jan 2009 16:12:00 GMT</pubDate><guid>http://www.cppblog.com/jimsmorong/archive/2009/01/12/71768.html</guid><wfw:comment>http://www.cppblog.com/jimsmorong/comments/71768.html</wfw:comment><comments>http://www.cppblog.com/jimsmorong/archive/2009/01/12/71768.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/jimsmorong/comments/commentRss/71768.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jimsmorong/services/trackbacks/71768.html</trackback:ping><description><![CDATA[C++ 想写些高深的 不过我不会 <br>呀 写些入门级的 充充数<br>stl 里面有个算法的 sort <br><br>大概是用那个partion sort 算法吧 其实我不太清楚 根据OO 思想 不应该去知道 对这个思想有保流<br><br>使用上方便 放入起始的位置迭代器 然后再放入自己的函数对象就可以了 <br><br>写个示例：<br><br>#include &lt;stdio.h&gt;<br>#include &lt;tchar.h&gt;<br>#include &lt;algorithm&gt;<br>#include &lt;iostream&gt;<br>#include &lt;utility&gt;<br>#include &lt;stdlib.h&gt;<br>#include &lt;vector&gt;<br><br>template&lt;int iType&gt;<br>struct mygreater<br>{&nbsp;&nbsp;&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp; bool operator()(const std::pair&lt;int,float&gt;&nbsp; &amp; _Left, const std::pair&lt;int,float&gt;&nbsp; &amp; _Right) const<br>&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (iType == 1)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return (_Left.first &gt; _Right.first);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else if (iType == 2)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return (_Left.second &gt; _Right.second);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//error<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }<br>};<br><br>void myprint(const std::pair&lt;int,float&gt;&nbsp; &amp; i)<br>{<br>&nbsp;&nbsp;&nbsp; std::cout&lt;&lt; i.first &lt;&lt; " " &lt;&lt; i.second &lt;&lt; "\n";<br>}<br><br>int _tmain(int argc, _TCHAR* argv[])<br>{<br>&nbsp;&nbsp;&nbsp; std::vector&lt;std::pair&lt;int,float&gt; &gt; gVecpair;<br>&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt;= 10; i++ )<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; gVecpair.push_back( std::make_pair( rand(),(float)rand()));<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; std::for_each(gVecpair.begin(),gVecpair.end(),myprint);<br>&nbsp;&nbsp;&nbsp; std::sort(gVecpair.begin(),gVecpair.end(),mygreater&lt;1&gt;( ));<br>&nbsp;&nbsp;&nbsp; std::for_each(gVecpair.begin(),gVecpair.end(),myprint);<br><br>&nbsp;&nbsp;&nbsp; std::cout&lt;&lt;"\n";<br><br>&nbsp;&nbsp;&nbsp; std::sort(gVecpair.begin(),gVecpair.end(),mygreater&lt;2&gt;( ));<br>&nbsp;&nbsp;&nbsp; std::for_each(gVecpair.begin(),gVecpair.end(),myprint);<br><br>&nbsp;&nbsp;&nbsp; getchar();<br>&nbsp;&nbsp;&nbsp; return 0;<br>}<br><br><br><img src ="http://www.cppblog.com/jimsmorong/aggbug/71768.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jimsmorong/" target="_blank">DK_jims</a> 2009-01-12 00:12 <a href="http://www.cppblog.com/jimsmorong/archive/2009/01/12/71768.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>