﻿<?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++博客-lwch-随笔分类-其他</title><link>http://www.cppblog.com/lwch/category/16032.html</link><description>【QQ:510134884】【Email:&lt;a href="mailto:lwch748@gmail.com"&gt;lwch748@gmail.com&lt;/a&gt;】</description><language>zh-cn</language><lastBuildDate>Wed, 26 Jun 2013 14:27:51 GMT</lastBuildDate><pubDate>Wed, 26 Jun 2013 14:27:51 GMT</pubDate><ttl>60</ttl><item><title>5年编程之旅</title><link>http://www.cppblog.com/lwch/archive/2013/06/17/201098.html</link><dc:creator>lwch</dc:creator><author>lwch</author><pubDate>Mon, 17 Jun 2013 15:22:00 GMT</pubDate><guid>http://www.cppblog.com/lwch/archive/2013/06/17/201098.html</guid><wfw:comment>http://www.cppblog.com/lwch/comments/201098.html</wfw:comment><comments>http://www.cppblog.com/lwch/archive/2013/06/17/201098.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cppblog.com/lwch/comments/commentRss/201098.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lwch/services/trackbacks/201098.html</trackback:ping><description><![CDATA[<div>&nbsp; &nbsp; 其实早就想写本文了，一直想缅怀一下过去的自己。说是说5年，其实在很久之前我已经用按键游侠（一个用VBS作为引擎的东西）开始写脚本了，说起编程还需要感谢猪哥，是他将我带入了编程这一领域（可悲的是现在都找不到QQ列表中的哪位了，猪哥希望您看到这篇文章之后能联系我）。5年前，我性质匆匆的买来了一本VC6和VS2005（好像是这个版本）入门的书打算开始学习C++（目前这两本书在某个妹子手里）。然后开始了漫长的C++学习之旅，记得当时我是一边摸索着学习C++的语法，一边在写按键娃娃（值得庆幸的是目前这货居然还能搜的到），下面我们来看一段有意思的代码。<br /><span><img src="http://images.cnitblog.com/blog/316071/201306/17233543-788a0dc37b4a46a08190853063661286.png" alt="" />&nbsp;<br />
<span>&nbsp; &nbsp;&nbsp;可以看到当时的我是多么的稚嫩，居然把一个功能函数包装成了一个类，居然还满心欢喜的加上了一段注释（很简单实用吧）-_-||<br />
<span><br />
&nbsp; &nbsp; 接下来是两个比较奇怪的函数<br /><span><img src="http://images.cnitblog.com/blog/316071/201306/17233629-b986f95e1d3f41319bb3851001067210.png" alt="" />&nbsp;<br />
<span>&nbsp; &nbsp;&nbsp;看里面的两个变量m_hDebugWnd和m_hCodeWnd按照道理来说这两个变量应该是全局变量才对，为什么被套上了m的定义？（我也是进了理客才知道m是member的缩写-_-||请不要喷我），可能当时看到别人代码里是这么写的于是我也就照葫芦画瓢了。还有很多个文件里就这么几行代码两三个函数的，这里就不列举出来了。<br />
<span><br />
&nbsp; &nbsp; 然后是一个switch，先看代码<br /><img src="http://images.cnitblog.com/blog/316071/201306/17233721-70c907eaa4e9437e8fc125fa792b271d.png" alt="" />&nbsp;<br />
&nbsp; &nbsp;&nbsp;以我现在的风格来看，这里肯定变成一个enum，否则这里一改调用方也需要跟着改定义（可能当时考虑到是给VB用的，所以就没那么做了吧:)）。<br />
<span>&nbsp; &nbsp; 写着写着就写到了图像查找的模块，为了有效的实现一个查找算法我买来了一本<br />
<span><img style="width: 120px; height: 167px;" src="http://img3.douban.com/lpic/s2992883.jpg" alt="图片" />&nbsp;<br />
<span>&nbsp; &nbsp; 但是可悲的是，我至今都还停留在入门的阶段，我也只是把里面模板匹配的部分看了一遍。直到几个月前，BOSS提出需求说是要做名片之类东西的矩形校正，我才完完整整的把这本书又看了一遍，虽然最后还是夭折了-_-||<br />
<span>&nbsp; &nbsp; 与此同时，看到网上说数据结构很重要，于是我也买了一本<br />
<img style="width: 120px; height: 167px;" src="http://img3.douban.com/lpic/s5826470.jpg" alt="图片" /><br />
&nbsp; &nbsp; 但对于一个完全没有系统的学习过编程的我来说，买的时候都没有看清它里面讲的是什么语言的，买回来才发现这个是Pascal版本的，当时就崩溃了。。。（虽然之前有用过Delphi，但都没用它写过过千行的代码，然后就被我抛弃了）。<br />
<span>&nbsp; &nbsp; 当时为了让模拟键盘鼠标那些能过NP（NProtect当时是个很牛逼的东西），我甚至还自己动手写了个驱动，当时对我来说绝对是个非常大的挑战。当时看的资料也不知道已经被我丢到哪里去了，说实话其实驱动写起来也没什么复杂的，按照它的API和框架来写就是了，不过当时比较蛋疼的是调试的时候经常蓝屏，最后我甚至搞了台虚拟机来专门调试，奇怪的是当时的那台破机器跑虚拟机居然不卡。</span></span></span></span></span></span></span></span></span></span></span></div>
<div><span><span><span><span><span><span><span><span><span><span><span><img src="http://images.cnitblog.com/blog/316071/201306/17233757-341aac5b43e34073aabc206a20786d22.png" alt="" /><br />
<span>&nbsp; &nbsp;&nbsp;这里有两个函数非常熟悉，是从ring3切换到ring0和切回来的，在之后写OS的代码里也有类似的代码。其中有一些代码现在不去翻资料已经看不懂了:)<br />
<span><img src="http://images.cnitblog.com/blog/316071/201306/17233825-5d0853250f4a4370ab74464564e9445a.png" alt="" /><br />
<br /><img src="http://images.cnitblog.com/blog/316071/201306/17233846-337226aa9eee4bdfba5d7130e8f998e4.png" alt="" /><br />
</span></span></span></span></span></span></span></span></span></span></span></span></span>&nbsp; &nbsp; 这里有一些有关于在驱动中读写内存和隐藏进程的代码，隐藏进程其实很简单，只要把这个进程从链表中拿掉就可以了，而读写内存则需要切到Ring0（因为有NP嘛）。<br />
&nbsp; &nbsp; 最后为了支持自定义窗口，我还为他做了一个窗口编辑器<br /><img src="http://images.cnitblog.com/blog/316071/201306/17233859-824f702b620746c2afdf69150e9d6726.png" alt="" /><br />
&nbsp; &nbsp; 很炫吧，呵呵:)下面我们来看一下它的帮助文档，做的还是很不错的嘛<br /><img src="http://images.cnitblog.com/blog/316071/201306/17233927-9c765050f6304c179a07096e5a1f77b0.png" alt="" width="1440" height="769" /><br />
&nbsp; &nbsp; 其实这个是按键娃娃的第一个版本。<br />
<br />
&nbsp; &nbsp; 原来它有这么多模块<br /><img src="http://images.cnitblog.com/blog/316071/201306/17233943-d8242b7badb94f19befef48b0a153821.png" alt="" width="1440" height="769" /><br />
<span>&nbsp; &nbsp;&nbsp;当然我还为按键娃娃做了一些网站啊之类的东西，没记错的话，按键娃娃应该是在08年的时候做的，当时开奥运会，我甚至还为他配上了一堆福娃的图标。之后我记得应该是和按键游侠的作者商量好了，一起来开发自己的引擎，但比较纠结的是自始至终也只有我一个人在做（据说他好像带小孩去了），人家毕竟不是专业的程序员。应此就有了QLanguage的第一个版本，当时我给他取名叫ES</span>（Easy to Study)&nbsp;<span>语言。对于一个没有学习过编译原理的我来说，一切都是手写的，而且当时还把词法分析和语法分析都并在了一起，代码真是一团糟。我没有记错的话，但是应该是我读南湖3年级和大一的时候，说到考大学，那真是简单加轻松啊，当时就以211分进了科技学院（名字很霸气吧~还有不要鄙视我，三校生高考满分是300分，我还是我们班最高的！）。<br />
<span>&nbsp; &nbsp; 之后便开始了大学生活，当然大学生活是相当无聊的，可悲的是大学三年我只去过一次图书馆，而且那次还是去辅导别人的。其他时间都在堕落的打着游戏（当然偶尔无聊的时候也会写写代码，前提是寝室里非常安静的情况下，估计也只有没人的时候），其实在这段时间里我多数时间是在周末回到家才去写QLanguage的，从大一到大二我一共做了两个版本的QLanguage，第一个完全是手写的，手写的Lexer和手写的Parser。在这个版本做了一半的时候我看到了</span></span><span><span><a title="http://www.cppblog.com/vczh" href="http://www.cppblog.com/vczh" target="_blank">vczh的博客</a>从他的博客里我知道了有《编译原理》这门课，于是我就买来了下面这本书<br />
<span><img style="width: 120px; height: 167px;" src="http://img3.douban.com/lpic/s2008042.jpg" alt="图片" /><br />
&nbsp; &nbsp; 通过读了这本书之后，便有了第二个版本的QLanguage，当时我瞬间就觉得代码写的更结构化了，不过这类书更偏理论，里面有一些算法但很少会有实现的代码，于是我就在网上各种找代码来看（其实这本书是我目前为止翻的次数最多的）。&nbsp;话不多说，让我们来看看当时的代码<br /><span><img src="http://images.cnitblog.com/blog/316071/201306/17233958-6e8b96e10eab4e69b09454460e64652b.png" alt="" width="1440" height="769" /><br />
&nbsp; &nbsp;&nbsp;当时的编码风格简直糟透了随意的有空格没空格，加括号和不加括号之类的这里就不展开说了。就在我完成之际，我又迎来了人生的一个转折点。大三了要实习了，当时那是疯狂的投简历啊，看到一家有兴趣的给他投简历，有幸的是理客是第一家联系我的，也就是我待到现在的公司（前三个月去过另外一家公司，反正背后的老板是同一个，只是那边人手不够我去帮忙的罢了），而这家公司也是离我家最近的。当时我带着一纸简历就这么过去了，进了理客之后我才知道什么是编码规范，易读的代码应该是什么样的，虽然现在QLanguage的代码里还是有一些没有按照规范来写的，不过我觉得看起来应该还不算糟糕。其实在大三那年还有段小插曲，当时看上个妹子，纠结了许久，最后毅然决定不再联系，之后我便下定决心要把QLanguage做好，这才有了一个稳定的功能丰富的QLanguage的第二个版本。<br />
<span>&nbsp; &nbsp; 记得刚进理客的时候还是个毛头小子，根本不知天高地厚，总觉得别人的代码写的没我的好。但随着时间的慢慢推移，我终于实习期满了转正了。当初的高傲也不复存在了。在理客我做过PHP、Office Plugin、iOS、Android和Researcher，其中最复杂的莫过于图像校正，说是拍出来的名片围成的四边形要将他校正为一个正常的矩形，里面的难点在于要找到这四条边。题外话，在理客的日子我觉得很开心，不光因为我认识了新的妹子，更有一帮基友可以陪我扯淡，可以扯游戏也可以扯编程还可以扯东扯西的扯到宇宙去-_-||不过我觉得理客更像是一所学校（我刚进去的时候就是做教育软件的，可能老板的理念就是从这起的）。而现在看着一个一个辞职的辞职，被辞职的被辞职，心里难免会有一种淡淡的忧伤，不过我觉得最对不起的还是某个同事，我说我要过来，结果老板把他给开掉了。<br />
<span>&nbsp; &nbsp; 啰啰嗦嗦的终于把本文写完了，其实我看过的书还有很多，这里我简单的把他罗列出来<br />
<span><br />
<img style="width: 120px; height: 167px;" src="http://img3.douban.com/lpic/s1869603.jpg" alt="图片" /><br />
<br />
<img style="width: 120px; height: 167px;" src="http://img3.douban.com/lpic/s1092076.jpg" alt="图片" /><br />
<br />
<img style="width: 120px; height: 167px;" src="http://img3.douban.com/lpic/s9114855.jpg" alt="图片" /><br />
&nbsp; &nbsp;&nbsp;还有没空看的<br />
<img style="width: 120px; height: 167px;" src="http://img3.douban.com/lpic/s1739467.jpg" alt="图片" /><br />
&nbsp; &nbsp; 虽然这些书并不是最经典的，但当你把它们都看完的时候，工作也不成问题了。<br />
&nbsp; &nbsp;&nbsp;最后我发现，要找以前的代码真不是一件容易的事情，应此我要做个文件和目录的管理工具，具体的<a title="http://code.google.com/p/qlanguage/source/browse/trunk/Documents/FileDispatcher.doc" href="http://code.google.com/p/qlanguage/source/browse/trunk/Documents/FileDispatcher.doc" target="_blank">实现方案</a>正在起草。可能本文中间会有些遗漏的地方，等以后想起来了再补上。其实这条路是没有尽头的，人类为了简化各种工作而发明了电脑和编程语言，应此本着这个宗旨我会开发更多简单实用的工具来简化工作和生活。</span></span></span></span></span></span></span><br />
</div><img src ="http://www.cppblog.com/lwch/aggbug/201098.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lwch/" target="_blank">lwch</a> 2013-06-17 23:22 <a href="http://www.cppblog.com/lwch/archive/2013/06/17/201098.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu下Nginx中Trac配置过程</title><link>http://www.cppblog.com/lwch/archive/2011/09/30/157171.html</link><dc:creator>lwch</dc:creator><author>lwch</author><pubDate>Thu, 29 Sep 2011 16:03:00 GMT</pubDate><guid>http://www.cppblog.com/lwch/archive/2011/09/30/157171.html</guid><wfw:comment>http://www.cppblog.com/lwch/comments/157171.html</wfw:comment><comments>http://www.cppblog.com/lwch/archive/2011/09/30/157171.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/lwch/comments/commentRss/157171.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lwch/services/trackbacks/157171.html</trackback:ping><description><![CDATA[<div>1. 无话可说的sudo apt-get install trac<br />2. 创建用户,sudo useradd -m username<br />3. 修改密码,sudo passwd username<br />4. 在/var/www中创建trac目录,sudo mkdir /var/www/trac<br />5. 修改trac权限,sudo chmod 777 /var/www/trac<br />6. 初始化trac目录,sudo trac-admin /var/www/trac initenv<br />7. 将user加入.htpasswd文件中,sudo passwd -c /var/www/trac/.htpasswd username(添加第一个用户时用这个命令,否则sudo passwd -b /var/www/trac/.htpasswd username password)<br />8. 为第一个用户添加TRAC_ADMIN权限,sudo trac-admin /var/www/trac permission add username<br />9. 修改trac的配置文件,sudo vim /var/www/trac/conf/trac.ini(可选)<br />10. 在后台启动trac服务,sudo tracd -d -p&nbsp;port --basic-auth="*",/var/www/trac/.htpasswd,/var/www/trac /var/www/trac<br />11. 修改Nginx配置,sudo vim /etc/nginx/sites-enabled/default<br />加入<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080">1</span>&nbsp;<span style="color: #000000">location&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">trac&nbsp;{<br /></span><span style="color: #008080">2</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;auth_basic&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">trac</span><span style="color: #000000">"</span><span style="color: #000000">;<br /></span><span style="color: #008080">3</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;auth_basic_user_file&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">var</span><span style="color: #000000">/</span><span style="color: #000000">www</span><span style="color: #000000">/</span><span style="color: #000000">war</span><span style="color: #000000">/</span><span style="color: #000000">trac</span><span style="color: #000000">/</span><span style="color: #000000">.htpasswd;<br /></span><span style="color: #008080">4</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_pass&nbsp;http:</span><span style="color: #008000">//</span><span style="color: #008000">127.0.0.1:port;</span><span style="color: #008000"><br /></span><span style="color: #008080">5</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">}</span></div>这里使用代理的模式来将发出的http请求转发给port端口<br />12. 重启Nginx服务器,sudo /etc/init.d/nginx restart<br />13. 登录trac进入后台管理(如果在permissions里添加一个用户,则这个用户必须加到.htpasswd文件中)<br /><br />可见trac的配置过程极其复杂</div><img src ="http://www.cppblog.com/lwch/aggbug/157171.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lwch/" target="_blank">lwch</a> 2011-09-30 00:03 <a href="http://www.cppblog.com/lwch/archive/2011/09/30/157171.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>实习一周总结</title><link>http://www.cppblog.com/lwch/archive/2011/07/16/151157.html</link><dc:creator>lwch</dc:creator><author>lwch</author><pubDate>Sat, 16 Jul 2011 05:50:00 GMT</pubDate><guid>http://www.cppblog.com/lwch/archive/2011/07/16/151157.html</guid><wfw:comment>http://www.cppblog.com/lwch/comments/151157.html</wfw:comment><comments>http://www.cppblog.com/lwch/archive/2011/07/16/151157.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cppblog.com/lwch/comments/commentRss/151157.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lwch/services/trackbacks/151157.html</trackback:ping><description><![CDATA[周一<br />早晨来到公司，领到了电脑，于是安装了各种软件。到了中午上司给我安排工作了，说是要用Redis数据库做一个小练习，心想Redis是神马玩意，听都没听说过。于是各种Google，到它官网上下载下来了源码，PSCP将下载到的源码放到Linux里（我们这连Linux用的是Putty，不知道有没其他好用的软件没）。tar解包，make编译，看到提示make test什么的于是纠结了半天，后来发现make install就可以搞定。至此周一工作完毕。<br /><br />周二<br />心想今天可以开始做练习了，于是继续在Google上找各种资料。后来发现telnet可以测试它的指令，于是cmd-&gt;telnet，&#8220;&#8216;telnet&#8217;不是内部或外部命令&#8221;，无奈只好去添加Windows组件。安装好后继续telnet，果然连上了，然后简单的测试了一下Get，Set，LPush，RPush，LRange等命令，对其返回数据包的格式有了一些了解。然后从网上下载来一个Redis-Client的源码，发现是Linux下的，于是对其改造，改造期间产生的主要问题是Linux和Windows的Socket编程方面的，头文件和一些宏的不同，Google找到解决方法之后编译成功。十分高兴，然后测试了一下Set和Get指令，杯具发生了！！！返回的数据包根据它的处理方式，完全不正确（可能这个Client对应的是老版本的Redis）。于是继续分析各种命令及其返回结果，最后在下午5点多终于完成了第一个版本。至此周二工作完毕。<br /><br />周三<br />早晨来到公司，叫我的上司来看了下昨天写的代码，然后他指出了一些编码上的问题，随后叫我自己写单元测试用例。于是把该分开的函数分开为若干的文件，编写测试用例（都怪我软测上课没认真听，反反复复写了好几个版本的测试用例），最后终于在下班前完成了。至此Redis部分的练习完成了，从中学到了如何在Linux里安装软件，如何将Windows里的文件传给远端的Linux，如何使用telnet命令，如何将Linux下关于网络的代码移植到Windows下等等。最后上司给了我一份300+页的关于Office-Plugin的文档，说明天开始做关于Office的练习，然后大致看了下wiki，了解了一下要求。至此周三工作完毕。<br /><br />周四<br />早晨来到公司，上司给我详细的说明了一下要求，然后开始看那份文档（那份文档除了教你怎么创建工程，调试工程其他对Word内容的操作什么都没有），于是继续Google查找相关的资料，到了中午大致完成了wiki上的要求，然后给他看了一下，他提出一些建议和要求。无奈只好下午继续修改，最初设想是在Word里创建一个Pane来对Word中的表格进行操作，上司过来给他介绍了一下，他说这样不行，最好是所见所得模式，光标定在哪就可以在哪编辑。于是继续Google查资料，发现Word中可以创建OLE对象的ComboBox等，于是简单的写了点代码创建它。至此周四工作完毕。<br /><br />周五<br />终于熬到周五了，各种疲惫啊，尤其是昨天看了一天资料，看的头晕乎乎的！！早上上司过来了解一下情况，我给他介绍了一下可以动态生成ComboBox，他看后表示创建出来的ComboBox会改变原来单元格的大小，于是把这部分给删掉了（汗那）。添加了一个保存功能，要求对表格内指定区域的数据保存到另一文件（神那！！真要这么做为什么不用Excel）。于是继续查资料，写出了第一个版本，测试后发现Word中文字和其他对象得分开处理，第一个版本中只能保存文字，无法保存图片等其他对象，继续查资料，发现了CopyAsPicture函数用于拷贝图片。最后简单了写了一些代码，终于完成了！还没给上司看过。至此周五工作完毕。<br /><br />总结<br />在公司里学到了不少东西，包括Linux方面的和Windows方面的。我们每天下午吃完午饭就会组织培训，从中我学到了如何用samba来共享Linux的一个目录作为Windows的一个映射的磁盘（原来用PSCP实在不是什么简单的方法）。使我体会最大的是公司里没人会来教你，都得靠你自己去琢磨。<br /><br />就写这么多了，文笔不行啊。。<img src ="http://www.cppblog.com/lwch/aggbug/151157.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lwch/" target="_blank">lwch</a> 2011-07-16 13:50 <a href="http://www.cppblog.com/lwch/archive/2011/07/16/151157.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VC2010 Lambda表达式简单分析</title><link>http://www.cppblog.com/lwch/archive/2011/02/17/140230.html</link><dc:creator>lwch</dc:creator><author>lwch</author><pubDate>Thu, 17 Feb 2011 08:32:00 GMT</pubDate><guid>http://www.cppblog.com/lwch/archive/2011/02/17/140230.html</guid><wfw:comment>http://www.cppblog.com/lwch/comments/140230.html</wfw:comment><comments>http://www.cppblog.com/lwch/archive/2011/02/17/140230.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lwch/comments/commentRss/140230.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lwch/services/trackbacks/140230.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Lambda表达式提供了匿名函数这个概念,可以使您在一个函数中书写另一个匿名的函数体先来看下如何在VC2010中书写Lambda表达式[捕捉项表](参数表)-&gt;返回类型{函数体}捕捉项表中在变量前添加&amp;操作符表示捕捉引用,添加=表示捕捉值参数表与"-&gt;"和后面的返回类型是可选的编译器会由函数体内的return语句判断返回类型,当返回类型很复杂时编译器无法判断,则必须手动给出...&nbsp;&nbsp;<a href='http://www.cppblog.com/lwch/archive/2011/02/17/140230.html'>阅读全文</a><img src ="http://www.cppblog.com/lwch/aggbug/140230.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lwch/" target="_blank">lwch</a> 2011-02-17 16:32 <a href="http://www.cppblog.com/lwch/archive/2011/02/17/140230.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>