<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-8503196</id><updated>2009-11-14T19:52:15.908+08:00</updated><title type='text'>missdeer 之编出来的幸福</title><subtitle type='html'>倚楼听风雨，淡看江湖路——未来的不可知，是我们前进的原动力！
花开，然后花落，星光闪耀，不知何时熄灭。这个地球，太阳，银河系，甚至整个宇宙也总会有消失的时候，人的生命和那些相比只不过是一瞬间吧，在那一瞬间中，人诞生，微笑，哭泣，战斗，伤害，喜悦，悲伤，憎恨谁，喜欢谁，所有的一切都是刹那间的邂逅，谁都不能逃脱死亡的长眠……</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default?start-index=26&amp;max-results=25'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>778</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8503196.post-8658942363837946989</id><published>2009-11-14T19:30:00.003+08:00</published><updated>2009-11-14T19:52:15.916+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lua，Script'/><title type='text'>渐渐习惯用Lua写代码了</title><summary type='text'>　　今天本来打算把那几个菜单项的功能完成的，不过后来又转去做其他事情了，计划执行力不强啊，唉！　　要在Lua中操作xml，在现在的软件开发中，这是个很常见的需求，xml已经变得无处不在了。在神作PIL中提到的是用expat库，呃，我只会用DOM，所以只好找其他的库了。前些天在luaforge上看到一个叫ltxml的，才0.2版本之后就没更新过了，用的是TinyXPath和TinyXML，我决定好好考察一下。　　它没有文档，只有一个readme后面四五行C代码示例，不过这足够了，看一下那个cpp文件中注册的方法，基本可以猜出用法。总的说来，先require，再用xml.open方法打开xml文件，然后就可以用TiXMLDocument的select等方法得到TiXMLNode，就跟我熟悉的用C++操作DOM的做法一样了。　　说起来TinyXML的表现不差，基本能满足我当前的需要，</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/8658942363837946989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=8658942363837946989' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/8658942363837946989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/8658942363837946989'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/11/lua.html' title='渐渐习惯用Lua写代码了'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-6754160965393390540</id><published>2009-11-12T20:11:00.002+08:00</published><updated>2009-11-12T20:46:55.611+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lua，Script'/><title type='text'>修正问题，展望未来</title><summary type='text'>　　经过定位，方法很简单，在有怀疑的地方加入跟踪语句，打印栈大小，发现确实还是在那几个地方，栈中项的数量稳步增加，这才想到，会不会是从表中获取某个元素后，那个表还在栈中呢？看了下文档，也没有相关的说明，只好先作这个假设。在调用表中的函数后，应该弹出两个值，这样修改后，果然过了一个多小时也没退出，而且看栈中的项也确实没泄漏的。　　昨天修正了对TeX代码高亮的问题。原本发现有TEX和LATEX两种lexer，如果直接设置好lexer的话，LATEX只能着色，没有代码折叠，而TEX有代码折叠，不能着色。看了代码似乎也都不用设置什么关键字字符串的，没办法只好到scintilla的maillist上问一下，Neil回复说SciTE中用的是TEX。于是我又看了一下TEX的properties文件，发现还有4个专用的property要设置，加上后果然好了。开源就是开源，只有通用的scintilla</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/6754160965393390540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=6754160965393390540' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/6754160965393390540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/6754160965393390540'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/11/blog-post_2924.html' title='修正问题，展望未来'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-8727814102341526439</id><published>2009-11-12T10:21:00.004+08:00</published><updated>2009-11-12T10:52:38.471+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lua，Script'/><category scheme='http://www.blogger.com/atom/ns#' term='Plugin Framework'/><title type='text'>狂烈地崩溃</title><summary type='text'>　　昨天偶然发现一个超级严重的问题，程序运行一小会儿就会自动退出，什么提示都没有。至于没提示，这已经有一段时间了，照理说，内部状态、逻辑不正常么，可以给个Windows的崩溃报告嘛，可是它偏偏没有，弄得我要跟着崩溃了。　　后来在代码中加入一些跟踪语句，发现出错的原因跟我的猜测一致，内嵌的Lua解释器栈溢出了。这是个很头痛的问题，以前听人说过，如果没有sandbox，插件运行环境是不可靠的，呃，最出名的是chrome的架构，经典的sandbox。但是我这个程序跟它的情况有点不同，在主窗口和子窗口上都有大量的用户交互操作，以及主窗口和子窗口之间大量的交互，子进程间的通信会很复杂。而且现在引起崩溃的，都是主窗口中的逻辑，所以还是会导致整个程序的不可用。　　昨天晚上调试了好久，发现只要更新工具栏按钮或主菜单项的界面状态的响应函数打开后，过一会儿就会退出。所以最后可以把范围缩小在C++调用Lua</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/8727814102341526439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=8727814102341526439' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/8727814102341526439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/8727814102341526439'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/11/blog-post_12.html' title='狂烈地崩溃'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-421010046422422789</id><published>2009-11-10T08:56:00.003+08:00</published><updated>2009-11-10T09:27:41.871+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lua，Script'/><category scheme='http://www.blogger.com/atom/ns#' term='Plugin Framework'/><title type='text'>使用SWIG和Luabind的问题续</title><summary type='text'>　　这几天似乎渐渐进入了正轨，发现并解决了一堆的问题。　　从github上下载的0.9版Luabind可能不稳定，毕竟是没有正式发布，之前没有经过仔细的试用，后来实际用的时候总是这也不行那也不行，万般无奈之下退回到正式发布的0.8.1版。两个版本确实有不少区别，至少源文件个数都不一样。在实际使用的过程中发现，0.8.1中如果注册一个类时，无论有没有注册它的构造函数和析构函数，都要求它们是public可见的，而0.9似乎没这个限制。　　比较郁闷的是，没找到一个可靠的办法，把一个类中的STL的容器类型的成员变量传给Lua。Luabind中有个return_stl_iterator策略，似乎是可以把它传给Lua，也能在Lua进行迭代，但是在应用程序退出时，就会报未处理异常。我想以后如果真的一定有传容器的需求，可以试一下SWIG。　　在Lua和C++之间传递字符串是个很头痛的问题。C++</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/421010046422422789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=421010046422422789' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/421010046422422789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/421010046422422789'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/11/swigluabind_10.html' title='使用SWIG和Luabind的问题续'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-3838181511885313962</id><published>2009-11-08T08:14:00.003+08:00</published><updated>2009-11-08T08:27:38.628+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lua，Script'/><title type='text'>混用SWIG和Luabind的问题</title><summary type='text'>　　花了两三天时间，总算是从头到尾看了一遍Luabind的使用手册，呃，为了确保没有漏过的内容，甚至还把整个文档都翻译了一遍。在看文档的过程中，还是比较感叹该库做得功能强大的，不过在实际用的时候就比较郁闷了。　　我用Luabind绑定了一些类和函数等内容到一个模块中，用了SWIG把几个头文件处理了一遍的，把所有内容都放到同一个模块中。一开始发现在Luabind中绑定的类在Lua中死活不能用，调用成员函数时，总是说那个类是个nil，不能被index。　　后来尝试了下，把Luabind中绑定的内容放在全局域中，发现居然可以了！虽然这样似乎可以工作，但我想让所有由内部C++代码提供的服务放在同一个模块中。后来想了想，把SWIG和Luabind的注册顺序换一下，改成先注册SWIG的内容，再注册Luabind的内容，嘿嘿，真的也可以了！我猜想可能Luabind的注册内容是采用追加的方式，而SWIG</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/3838181511885313962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=3838181511885313962' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/3838181511885313962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/3838181511885313962'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/11/swigluabind.html' title='混用SWIG和Luabind的问题'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-6618887035350403997</id><published>2009-11-04T11:02:00.003+08:00</published><updated>2009-11-04T11:27:15.297+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lua，Script'/><title type='text'>从C++传递窗口给wxLua</title><summary type='text'>　　描述一下问题，程序主框架是用C++实现的，GUI框架用的wxWidgets，有一部分功能通过嵌入Lua解释器调用Lua脚本完成，如果要在Lua脚本中用wxLua实现个对话框的这种情况下，需要一个父窗口，而最好的父窗口是由C++实现的，现在就需要能把C++中实现的窗口传递给Lua，并让wxLua作为父窗口使用。　　问题根源是出于偷懒的考虑，我把C++中需要能被Lua调用的类、方法等用SWIG嚼了一遍，生成了脱水代码。这样用SWIG返回的wxWindow*跟wxLua中的wx.wxWindow就不是一种东西。　　解决方案比较quick and dirty，过程略有点曲折。昨天偶然在wxWiki上看到一段文字，描述了如何将MFC的窗口关联到wxWidgets中，我就想如果wxLua是严格移植了wxWidgets的话，应该也很容易实现的。不过很沮丧的是SetHWND、</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/6618887035350403997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=6618887035350403997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/6618887035350403997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/6618887035350403997'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/11/cwxlua.html' title='从C++传递窗口给wxLua'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-1912980822082946084</id><published>2009-11-03T20:54:00.003+08:00</published><updated>2009-11-03T21:34:27.567+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Plugin Framework'/><title type='text'>划分脚本插件架构的职责面临的问题</title><summary type='text'>　　今天整理了一下项目中使用的第三方框架、库的列表，很多，有C++的，有Lua的，突然面临一个迫切需要解决的问题：怎么决定某个功能应该由C++实现还是由Lua实现？　　最早决定让项目成为一个由C++构建主体框架，由Lua脚本扩展实现其他的业务逻辑时，只是单纯得想让C++完成一部分最核心的功能。但现在的问题是，怎么判定一个功能是否够核心，以及即使够核心了，还得考虑其他一些因素，包括实现难度，安全保护，代码架构合理性，代码和逻辑共享等。　　众所周知，用不同的语言实现相同的功能，难度和工作量可能差别很大。以前听同事和领导不止一次说起过，一行脚本顶得上一百行C++代码。这也许有点夸张的成分，但正好说明差异巨大这个事实。引起这种差异的主要原因就我自身角度出发来看，在于对语言的掌握程度，不同的语言风格就对不同开发任务的适应度，以及可利用的现成的库和代码的丰富度和成熟度。　　说起安全保护，是今天看到</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/1912980822082946084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=1912980822082946084' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/1912980822082946084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/1912980822082946084'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/11/blog-post.html' title='划分脚本插件架构的职责面临的问题'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-6269122614424173228</id><published>2009-11-03T09:50:00.003+08:00</published><updated>2009-11-03T10:29:23.652+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lua，Script'/><title type='text'>直接用LuaJIT 2.0</title><summary type='text'>　　昨天发现LuaJIT2.0跟某些第三方Lua库不正常使用，于是在Lua的maillist上发了个邮件问问，结果今天看到Mike Pall的回复说是IUP、IM它们的代码里插入了硬编码的已经被编译成字节码的Lua脚本，而这些脚本在IUP中处理时，没有正确处理出错的情况，于是说这个不是LuaJIT的问题，应该向IUP提交这个Bug。　　这让我比较纳闷，因为我不知道到底问题出在哪里，即使要向IUP提交bug，只说一句Mike Pall说的你们的代码有问题，LuaJIT2.0里不能require，而明明官方Lua和LuaJIT1.0是可以正常使用的，人家会睬我吗？　　今天我又发现，在require另外一个叫iupluaim的库时，LuaJIT 2.0会崩溃！于是我想我先看看是LuaJIT中的哪行代码引起的崩溃，用VC2008创建了个解决方案，添加了代码进去，编译出Debug版本的LuaJIT</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/6269122614424173228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=6269122614424173228' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/6269122614424173228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/6269122614424173228'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/11/luajit-20.html' title='直接用LuaJIT 2.0'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-3730897574395061376</id><published>2009-11-01T20:46:00.003+08:00</published><updated>2009-11-03T10:29:23.652+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lua，Script'/><title type='text'>LuaJIT初体验</title><summary type='text'>　　偶然看到云风blog上讲到LuaJIT2.0 Beta发布了，于是很好奇地到它的官方网站上看了看。以前也是听说过有这个东西的，不过以前根本不用Lua这东西，看过也就忘了。　　这个东东据说是从API到ABI都是兼容官方Lua的最新版本的，所以一般说来，用官方Lua做的事情，用LuaJIT也可以做。但是它的强项在于，它执行Lua脚本比官方Lua要快，最慢的是快一点点，大概一点几倍，好的情况下能达到几十倍。　　这次说的2.0 Beta版本据说是VM部分跟1.x版本来说完全重写了，效率又是提升了n倍。这个效率有提升，其他代价也几乎没有，这等好事不能错过，于是下载了它的源代码来体验一把。　　它的编译方法跟官方Lua的很像，反正很容易。在Windows平台最后会生成一个dll文件一个exe文件，这点跟官方Lua也是很类似。只要在编译的时候保证dll的文件名，这样就可以把这个dll拿到其他嵌入</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/3730897574395061376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=3730897574395061376' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/3730897574395061376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/3730897574395061376'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/11/luajit.html' title='LuaJIT初体验'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-20533866324275614</id><published>2009-11-01T09:53:00.004+08:00</published><updated>2009-11-03T10:34:42.074+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lua，Script'/><title type='text'>无奈啊，还是离不开VC</title><summary type='text'>　　之前说过，wxWidgets程序是用MinGW编译的，所以用到的wxLua就只好用其他编译器了，试了BCC 5.5和OpenWatcom 1.8，都因为不能顺利编译wxWidgets而放弃了，只好再掉头用回VC 2008。　　既然用了VC编译wxLua，而前些天用MinGW编译的IUP等用起来又有问题，于是就索性让VC把IUP、IM、CD等其他的库也都编译了好了。因为只有最最核心的功能是用C++写的，其他的功能能用Lua的都用Lua写，所以就需要有比较完善的常用功能的库。除了wxLua、IUP这等GUI库外，剩下还需要数据库访问的，至少是能访问sqlite3的，网络通信的，XML操作的，正则表达式，MD5等散列值计算的这几方面的库。现在暂时还没编译，等到时候真正需要的时候再搞吧。　　在编译和使用wxLua和IUP的过程中，遇到不少问题。　　Lua脚本在require一个模块时，</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/20533866324275614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=20533866324275614' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/20533866324275614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/20533866324275614'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/11/vc.html' title='无奈啊，还是离不开VC'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-2350168232745017008</id><published>2009-10-31T18:52:00.002+08:00</published><updated>2009-10-31T19:03:09.414+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Plugin Framework'/><title type='text'>继续改进插件扩展框架再续</title><summary type='text'>　　今天完成了右键弹出菜单的插件扩展框架支持，基本上没有遇到什么障碍，跟原来想的一样简单。　　除了这个，还把菜单、工具栏的插件扩展支持功能的代码重构了一遍，把这部分功能提取成一个独立的类，在类中完成插件扩展的相关功能，只有最终的事件消息响应函数仍然放在界面类中，这是因为才发现不是随便一个类的成员函数都可以绑定成事件处理器的。　　顺便说个可能是wxWidgets的bug，动态创建的菜单，动态添加的菜单项，第一个图标总是显示不出来！　　再一个是原本用SWIG生成的文件，我把它直接作为头文件，包含在另一个源文件中，而该源文件因为某些原因，经常会被重新编译，而恰恰这SWIG生成的文件体积巨大（超过25000行），所以编译要花不少时间。于是又仔细看了一下生成的这个文件，发现其实最终只是需要一个luaopen_libname的函数，这样SWIG生成的文件就可以作为源文件了，不用跟着其他文件编译了。</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/2350168232745017008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=2350168232745017008' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/2350168232745017008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/2350168232745017008'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/10/blog-post_31.html' title='继续改进插件扩展框架再续'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-5926165657505687399</id><published>2009-10-30T18:55:00.003+08:00</published><updated>2009-10-30T19:27:05.755+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Plugin Framework'/><title type='text'>继续改进插件扩展框架后续</title><summary type='text'>　　今天修改了插件扩展的描述方式，把菜单项、工具栏按钮的标题、路径和帮助文本，工具栏按钮的图片等信息，全都写到xml描述文件中，这样一弄，lua脚本确实精简了很多。到现在为止，已经可以正常地通过插件扩展实现主菜单和工具栏的点击响应了，如果要说更新界面状态，也不是很麻烦，也就是多添加一个消息连接而已。　　再说右键弹出菜单，我粗略地想了想，应该不是很麻烦，也就是添加到各自的扩展点下即可。其实直到现在，我才想起来，我这种实现方式，其实应该跟Windows传统的GUI资源编程基本思路是一样的。主菜单用一个编号标识，然后是菜单项信息，需要足够多的信息可以标识出菜单项的位置（路径），然后是给菜单项添加消息响应。工具栏的实现也是类似，所以如果要支持右键弹出菜单，也沿用那套思路就行了。　　昨天说到，如果在插件扩展中使用wxLua，那么wxLua不能使用宿主程序使用的wxWidgets二进制文件，</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/5926165657505687399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=5926165657505687399' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/5926165657505687399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/5926165657505687399'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/10/blog-post_30.html' title='继续改进插件扩展框架后续'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-995849878289696732</id><published>2009-10-29T18:49:00.003+08:00</published><updated>2009-10-29T19:04:34.818+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shareware'/><category scheme='http://www.blogger.com/atom/ns#' term='Plugin Framework'/><title type='text'>继续改进插件扩展框架</title><summary type='text'>　　这两天又用wxWidgets，不得不感叹一下，资料实在太少了，只有一个现成的manual，其他时候就只有看看CodeLite、Code::Blocks的源代码了！　　到今天为止，修改了脚本扩展的功能，可以在一个描述文件中定义多个扩展的信息。对于主菜单来说，倒是勉强够用了，不过当时因为想让描述文件中对扩展的描述尽量通用，将其他的信息都写到脚本里去了，现在看来如果要对工具栏也使用脚本扩展，那么这种方式实在太不方便了点，还是应该把这种静态配置信息的都放在xml格式的描述文件中，脚本中应该只有动态的逻辑。所以还需要修改。　　今天又忘了，wxWidgets的程序如果使用Lua扩展，而扩展又装载wxLua的话，wxLua的二进制文件不能用和wxWidgets程序相同的wxWidgets二进制动态链接库，不然会出现各种奇怪的问题。这是让我目前比较头痛的问题。我现在是用MinGW来编译</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/995849878289696732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=995849878289696732' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/995849878289696732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/995849878289696732'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/10/blog-post_29.html' title='继续改进插件扩展框架'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-6589542619625719251</id><published>2009-10-26T19:43:00.002+08:00</published><updated>2009-10-26T20:00:47.683+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Execise Outdoor'/><title type='text'>又一年重阳</title><summary type='text'>　　今天是重阳节，据说要登高，这个习俗我是去年才知道的。突然想起去年的情景。　　去年十一的时候嫌无聊，开始参加网上组织的户外活动组织，一个月要出去2-4次，而像重阳登高这种是纯娱乐休闲级别的，那次是下了班转了几次车最后还是打车去的集合地点的。　　时间过得真快啊，就这么一年过去了！</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/6589542619625719251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=6589542619625719251' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/6589542619625719251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/6589542619625719251'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/10/blog-post_26.html' title='又一年重阳'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-3783461237661525555</id><published>2009-10-24T18:37:00.003+08:00</published><updated>2009-10-24T18:43:17.411+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shareware'/><title type='text'>提交了100多个网站</title><summary type='text'>　　这是这三天来忙碌的成果，其实实打实只有近一天的时间是花在这个上面了。前天差不多提交了50个，昨天休息了，今天则是差不多提交了90个左右。本来说是一个150的列表，其中有重复的，有需要back link的，有类型不合适的，还有其他一些原因的，最终没有提交成功的，所以估计最后的总数在140左右。　　今天开始就新的内容了，嗯！</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/3783461237661525555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=3783461237661525555' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/3783461237661525555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/3783461237661525555'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/10/100.html' title='提交了100多个网站'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-8133650591088851029</id><published>2009-10-22T19:20:00.002+08:00</published><updated>2009-10-22T19:29:44.888+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shareware'/><title type='text'>提交也不很麻烦</title><summary type='text'>　　原本我提交的时候，都是老老实实一项一项地填写软件信息的，虽然也知道有PAD，还装过个自动生成软件，但一直没用上。今天突然觉得应该多提交些网站，于是从cnsw论坛里找了批下载站的地址，开始提交，猛然发现大多数站点是只接受PAD方式提交的，于是没办法咯，只好老老实实生成各个PAD，再提交。　　不过这样下来，发现用PAD提交，既然没有软件自动提交，纯粹人肉也不是很费时间啊！</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/8133650591088851029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=8133650591088851029' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/8133650591088851029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/8133650591088851029'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/10/blog-post_22.html' title='提交也不很麻烦'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-4401490272073733032</id><published>2009-10-20T13:43:00.003+08:00</published><updated>2009-10-20T13:47:32.628+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shareware'/><title type='text'>投身AV事业</title><summary type='text'>　　昨天跟一个以前的同事在QQ上聊天，说到他有朋友是卖电脑的，问有没有什么软件可以OEM的。想到要OEM，必然要大众，要傻瓜，要新潮。于是我随便想了想，倒也不是真想去OEM，只是最后想到AV类的软件，实在是极其巨大的市场！　　于是我又发散思维地想了想，最后觉得这类型的产品是有利可图，而且网上代码和成品软件很多，开始涉足的技术难度应该不是非常大。　　唉，为了快速圈地，只好先投身AV事业了！</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/4401490272073733032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=4401490272073733032' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/4401490272073733032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/4401490272073733032'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/10/av.html' title='投身AV事业'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-8584136947742060898</id><published>2009-10-19T20:39:00.002+08:00</published><updated>2009-10-19T20:46:45.487+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>ISTool区别大了</title><summary type='text'>　　今天在安装程序中添加了2个网页快捷方式，因为用的是ISTool编辑的，所以就直接用它来编译了，结果试了几次，都发现没正确添加上快捷方式，连原来应该有的其他的快捷方式都没有了，甚至发现我本来让它在所有文件复制完后，应该有个选项可以让用户选择是否运行程序的，连选项都没有了。　　真是奇怪的问题，于是在CruiseControl的历史记录中翻出最近的历史，发现还是正确的。想到这个安装脚本的区别基本没有，主要在于使用的是不同的编译工具。于是用命令行ISCC.exe编译了一下，居然是正确的！　　这ISTool原来还是自己做了一套编译功能的说？</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/8584136947742060898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=8584136947742060898' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/8584136947742060898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/8584136947742060898'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/10/istool.html' title='ISTool区别大了'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-4832254960648398724</id><published>2009-10-18T10:25:00.004+08:00</published><updated>2009-11-03T10:32:17.878+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lua，Script'/><title type='text'>MinGW编译IUP、CD和IM</title><summary type='text'>　　知道IUP应该是去年的事，有个叫LuaForWindows的集合，里面就带了一个，上网了解了一下，知道还有一起的IM和CD。LuaForWindows已经提供了使用MSVC2005编译好的二进制文件，不过我不喜欢。我打算用MinGW编译一把。　　开始的时候我以为可以直接用自带的makefile编译。结果是我花了半天时间，在msys里编译，还试图根据编译时报的出错信息，来修改makefile。在msys编译失败后，我尝试看那个自带的makefile，以为用TecMake可以编译通过，事实又是让我那么的失望！　　最后，经过我对makefile的简单解读和分析，我决定自己写下个bjam的编译脚本。总的说来，我深信bjam是很适合用来编译库的，毕竟boost就是一堆的库。经过近一天的努力，除了那些需要依赖OpenGL、Windows Media SDK、DirectX等额外库支持的库，</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/4832254960648398724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=4832254960648398724' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/4832254960648398724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/4832254960648398724'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/10/mingwiupcdim.html' title='MinGW编译IUP、CD和IM'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-8268373695787292005</id><published>2009-10-14T20:19:00.003+08:00</published><updated>2009-10-14T20:25:12.371+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>封得越来越死了</title><summary type='text'>　　前些天才知道，tor也是会被封的，要用tor bridge才行，至于bridge的ip从哪来，网上到处有说，也就是给某邮箱发个邮件索取来的。　　这两天发现，这些bridges也是时好时坏的，于是笨办法是不停地索取新的bridges来用，今天发现得到的ip有的是之前得到过的，也就是说可能是不好用的，只能试试之前没用过了。　　唉，封得越来越死了，无语！</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/8268373695787292005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=8268373695787292005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/8268373695787292005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/8268373695787292005'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/10/blog-post_14.html' title='封得越来越死了'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-7441429033122462548</id><published>2009-10-12T16:01:00.004+08:00</published><updated>2009-10-12T16:32:01.582+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>被LaTeX折腾了</title><summary type='text'>　　昨天一时好奇，从网上下载了CTeX 2.8 Beta1来，安装好后，尝试着编译原来的一个纯英文的文档和一个Beamer做的幻灯片，结果发现全都有问题。首先是编译速度非常非常慢，CPU占满。然后是原来用grphicx的地方，直接插入png的语句编译不过。最后是发现Beamer包的应用和bibtex联用的地方，最后一次pdflatex编译时，编译不过。　　速度慢倒暂时也忍了。至于插入png的语句编译不过，通过网上找到的资料，下载了个ImageMagick，里面有个convert.exe，可以将png转换成eps，而实际上这eps也只有在普通文档中是可用的，在Beamer中仍然要用png，这是让人很郁闷的地方，几方处理方式不一致，是让写程序的人很头疼的事。　　好吧，这些都是可以放一边的。最最关键的是，那个幻灯片编译不过呀！如果不编译最后一次，那参考文献就不行了。于是继续上网找办法，</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/7441429033122462548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=7441429033122462548' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/7441429033122462548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/7441429033122462548'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/10/latex.html' title='被LaTeX折腾了'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-8823340686348907268</id><published>2009-10-10T20:44:00.004+08:00</published><updated>2009-10-10T20:54:16.568+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reading'/><title type='text'>读书计划</title><summary type='text'>　　辞职前，还计划在到年底前的3个月里好好读一下买来的那么多书，可是事实是回来这么些天了，还是没什么动静。　　那时的计划是要读一本市场营销原理的书，一本经济学原理的书，一本心理学原理的书。之后再是读一遍已经买的“图灵”系列丛书，主要是想把实现模式、设计模式、面向对象程序设计以及重构这4方面的内容结合在一起，以提高自己的水平。　　近两周来，我没基本看过一本书，我觉得应该调整一下，慢慢地看也好，每天看一点点，但要做笔记，或者写心得。这是最近让我觉得比较迷惑的地方，前段时间要写重构相关的幻灯片，可是虽然我读了《重构》，但在写幻灯片的时候却只能抄书上的内容，这是让我觉得很不爽的一件事情。我觉得心得，主要应该是自己结合原书内容得加以扩展、延伸的内容，而我现在却写不出什么东西来。在之后的读书过程中要努力改进啊！</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/8823340686348907268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=8823340686348907268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/8823340686348907268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/8823340686348907268'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/10/blog-post_10.html' title='读书计划'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-5140368189193273440</id><published>2009-10-08T10:44:00.003+08:00</published><updated>2009-10-08T10:50:30.561+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shareware'/><title type='text'>做界面真麻烦</title><summary type='text'>　　我到现在还是没有掌握到Windows图形界面的真正规则，只能使用各种现成的类库、组（控）件、框架来做界面。很多效果如果默认的控件不能提供，需要自绘什么的，我就傻眼了。　　昨天又花了不少时间在做界面上。本来是想在一个Pane上放在一个自绘的ListBox的，结果问题不断，困难重重。其实到最后发现所有的问题都是只要使用适当的窗口风格就可以解决，我大汗！</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/5140368189193273440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=5140368189193273440' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/5140368189193273440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/5140368189193273440'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/10/blog-post_08.html' title='做界面真麻烦'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-6903912923015589870</id><published>2009-10-06T19:42:00.005+08:00</published><updated>2009-10-08T10:52:19.239+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shareware'/><title type='text'>有关GUI框架的一点事</title><summary type='text'>　　今天偶然发现在svn trunk中的wxWidgets已经支持Ribbon了。在更新了代码后，我还特地用VC2008编译了一遍体验了一下。总的说来，可以算是Ribbon了，但感觉没有像XTP、BCG或MFC v9.0中的那么舒服。我看的是它自带的那个sample，还带着Windows标准窗口的标题栏，没有左上角的按钮和下拉菜单，也没有右上角的按钮。不知道是sample中没实现，还是wxWidgets本身就不支持。不过我想么，用wxWidgets本身就说明是重点关注它的跨平台可移植性，就不要关注这种平台特定的东西了，包括那GDI+也是。它既然号称look and feel native，那么代价就是界面不容易做得很有个性，就只适合做些严肃题材的软件了，比如IDE。　　今天又看了下MSDN中对VC 2008 Feature Pack中对MFC界面增强的介绍，让我有点儿小小的郁闷，</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/6903912923015589870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=6903912923015589870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/6903912923015589870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/6903912923015589870'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/10/gui.html' title='有关GUI框架的一点事'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8503196.post-8531985546665835442</id><published>2009-10-04T09:44:00.000+08:00</published><updated>2009-10-04T09:47:19.646+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Water'/><title type='text'>太惨了</title><summary type='text'>　　昨天拉肚子，拉了一天，上了5次，拉得四肢乏力，全身脱水，口干舌燥，真是太惨了。好在晚上去二伯家拿了一些药，效果还是挺明显的，早上本来的时候，肚子没怎么乱叫了，经过一晚上的休息，总算也恢复了一点体力！</summary><link rel='replies' type='application/atom+xml' href='http://missdeer.blogspot.com/feeds/8531985546665835442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8503196&amp;postID=8531985546665835442' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/8531985546665835442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8503196/posts/default/8531985546665835442'/><link rel='alternate' type='text/html' href='http://missdeer.blogspot.com/2009/10/blog-post_04.html' title='太惨了'/><author><name>missdeer</name><uri>http://www.blogger.com/profile/18003139432457999590</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12550827958068381724'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>