﻿<?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++博客-只有有耐心圆满完成简单工作的人，才能够轻而易举地完成困难的事。-随笔分类-C++专栏</title><link>http://www.cppblog.com/leetaolion/category/4833.html</link><description>Only those who have the patience to do simple things perfectly ever acquire the skill to do difficult things easily. </description><language>zh-cn</language><lastBuildDate>Wed, 03 Feb 2010 04:31:33 GMT</lastBuildDate><pubDate>Wed, 03 Feb 2010 04:31:33 GMT</pubDate><ttl>60</ttl><item><title>Visual Studio VS C++Builder07 不同的公司，同样的Bug</title><link>http://www.cppblog.com/leetaolion/archive/2010/02/02/107044.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Tue, 02 Feb 2010 12:09:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2010/02/02/107044.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/107044.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2010/02/02/107044.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/107044.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/107044.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 结论：是两家的编译器在预编译的时候，不允许数值超过1G。&nbsp;&nbsp;<a href='http://www.cppblog.com/leetaolion/archive/2010/02/02/107044.html'>阅读全文</a><img src ="http://www.cppblog.com/leetaolion/aggbug/107044.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2010-02-02 20:09 <a href="http://www.cppblog.com/leetaolion/archive/2010/02/02/107044.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[初探Xerces系列]对外提供CLI</title><link>http://www.cppblog.com/leetaolion/archive/2009/05/20/83445.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Wed, 20 May 2009 02:12:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2009/05/20/83445.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/83445.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2009/05/20/83445.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/83445.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/83445.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 应用程序的接口不外乎三种，CLI——命令行接口，API——应用编程接口和GUI。<br><br>因为现在有大把集成快速开发功能的IDE可供选择，因此GUI的实现变得非常的顺手。工具水平提高了，这看起来是理所当然的事情。其实呢？&nbsp;&nbsp;<a href='http://www.cppblog.com/leetaolion/archive/2009/05/20/83445.html'>阅读全文</a><img src ="http://www.cppblog.com/leetaolion/aggbug/83445.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2009-05-20 10:12 <a href="http://www.cppblog.com/leetaolion/archive/2009/05/20/83445.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[初探Xerces系列]目录结构也可以辅助提高代码可读性</title><link>http://www.cppblog.com/leetaolion/archive/2009/05/19/83394.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Tue, 19 May 2009 09:23:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2009/05/19/83394.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/83394.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2009/05/19/83394.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/83394.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/83394.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 项目组曾经一度有过争论，认为目录层次过深，跨度过大（我们通常设置在3层以内），会降低编译效率。&nbsp;&nbsp;<a href='http://www.cppblog.com/leetaolion/archive/2009/05/19/83394.html'>阅读全文</a><img src ="http://www.cppblog.com/leetaolion/aggbug/83394.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2009-05-19 17:23 <a href="http://www.cppblog.com/leetaolion/archive/2009/05/19/83394.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[初探Xerces系列]xerces-c-3.0.1在CB07下编译不过的解决办法</title><link>http://www.cppblog.com/leetaolion/archive/2009/05/19/83381.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Tue, 19 May 2009 07:37:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2009/05/19/83381.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/83381.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2009/05/19/83381.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/83381.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/83381.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 最近对XML解析器进行评估，除了正在用的MyXML之外，打算找多几个DOM, SAX的解析器对比一下。<br>先后也看了TinyXML和XercesC，本来打算看看Intel的，时间不允许，算了。<br>Xerces比较全面的了，有DOM也有SAX，就评估他好了，最近项目里面的xml文件越来越大了，My有点吃不消。<br>Apache.org下载下来的工程是CB6.0的，CB07升级工程，编译报错。&nbsp;&nbsp;<a href='http://www.cppblog.com/leetaolion/archive/2009/05/19/83381.html'>阅读全文</a><img src ="http://www.cppblog.com/leetaolion/aggbug/83381.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2009-05-19 15:37 <a href="http://www.cppblog.com/leetaolion/archive/2009/05/19/83381.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>获取版本信息Version的完整代码（从msdn扩展而来）</title><link>http://www.cppblog.com/leetaolion/archive/2009/02/05/73063.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Thu, 05 Feb 2009 11:24:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2009/02/05/73063.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/73063.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2009/02/05/73063.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/73063.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/73063.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ::GetFileVersionInfoSize(MyName.c_str(), &NoUse);<br>::GetFileVersionInfo(MyName.c_str(),NoUse,InfoSize,VersionInfo.get())) // 获取版本信息成功<br>::VerQueryValue(VersionInfo.get(), "\\VarFileInfo\\Translation", (LPVOID *)&lpTranslate, &ValueLen))<br>Step by Step&nbsp;&nbsp;<a href='http://www.cppblog.com/leetaolion/archive/2009/02/05/73063.html'>阅读全文</a><img src ="http://www.cppblog.com/leetaolion/aggbug/73063.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2009-02-05 19:24 <a href="http://www.cppblog.com/leetaolion/archive/2009/02/05/73063.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>初始化const, static, const static, static const成员变量</title><link>http://www.cppblog.com/leetaolion/archive/2009/01/10/71651.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Sat, 10 Jan 2009 07:29:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2009/01/10/71651.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/71651.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2009/01/10/71651.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/71651.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/71651.html</trackback:ping><description><![CDATA[// 很多人问，答者聊聊，整理一下，以供参考<br>class MyTestClass<br>{<br>public:<br>&nbsp;&nbsp;&nbsp; MyTestClass() : m_ciInt(1), m_csStr("MyStr")&nbsp; // const成员变量，在ctor参数列表中初始化<br>&nbsp;&nbsp;&nbsp; {}<br>public:<br>&nbsp;&nbsp;&nbsp; const int m_ciInt;<br>&nbsp;&nbsp;&nbsp; const String m_csStr;<br>&nbsp;&nbsp;&nbsp; static int m_siInt;<br>&nbsp;&nbsp;&nbsp; static String m_ssStr;<br>&nbsp;&nbsp;&nbsp; const static int m_csiInt;<br>&nbsp;&nbsp;&nbsp; const static String m_cssStr;<br>};<br>int MyTestClass::m_siInt = 1; // static成员变量，在外部定义<br>String MyTestClass::m_ssStr = "MyStr"; // static成员变量，在外部定义<br>const int MyTestClass::m_csiInt = 1;&nbsp; // const static/static const成员变量，在外部定义<br>const String MyTestClass::m_cssStr = "MyStr"; // const static/static const成员变量，在外部定义
<img src ="http://www.cppblog.com/leetaolion/aggbug/71651.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2009-01-10 15:29 <a href="http://www.cppblog.com/leetaolion/archive/2009/01/10/71651.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>BCB的两个问题</title><link>http://www.cppblog.com/leetaolion/archive/2008/09/22/62519.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Mon, 22 Sep 2008 10:49:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2008/09/22/62519.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/62519.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2008/09/22/62519.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/62519.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/62519.html</trackback:ping><description><![CDATA[其一：对BCB自己提供的数据类型支持有问题，当布置成DLL的时候，多个DLL之间传递TAction时，东西丢的一塌糊涂。<br><br>其二：对BCB自己提供的标准控件支持有问题，尤其是动态特性有很大的问题，比如你通过Add()把创建好的TMenuItem加到MainMenu上，很奇怪，本来唯一的MenuIndex重复的一塌糊涂，导致MenuItem位置左右乱跳。<br><br>要做动态配置的，别选BCB，这方面太弱。
<img src ="http://www.cppblog.com/leetaolion/aggbug/62519.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2008-09-22 18:49 <a href="http://www.cppblog.com/leetaolion/archive/2008/09/22/62519.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>狗，哈士奇，跳蚤，继承，聚合，UpCast和DownCast</title><link>http://www.cppblog.com/leetaolion/archive/2008/09/20/62344.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Sat, 20 Sep 2008 03:22:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2008/09/20/62344.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/62344.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2008/09/20/62344.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/62344.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/62344.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 验证了结果是：指向子类对象的父类指针，在做DownCast时，不会因为自身是父类指针而使DownCast出的子类对象指针发生缺失，连一只虱子、跳蚤都不会少。&nbsp;&nbsp;<a href='http://www.cppblog.com/leetaolion/archive/2008/09/20/62344.html'>阅读全文</a><img src ="http://www.cppblog.com/leetaolion/aggbug/62344.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2008-09-20 11:22 <a href="http://www.cppblog.com/leetaolion/archive/2008/09/20/62344.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>重构故事——Chapter03</title><link>http://www.cppblog.com/leetaolion/archive/2008/08/25/59921.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Mon, 25 Aug 2008 08:14:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2008/08/25/59921.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/59921.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2008/08/25/59921.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/59921.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/59921.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: A计划1：平台版本在v2.1版本基础上进行迁移，逐个模块改造，平台1.0版本，在业务分支3.0版本之前发布，在3.x版本与其他业务版本结合；  <br>B计划1：平台版本不再单独演进，将现在的平台技术应用到即将发布的3.0版本中。包括插件结构、动态加载、动态激活，3.0版本中的业务模块一律按照插件规范开发。<br>// ---------------------------------------------------------------<br>A计划2：CCB管理配置文件，规范插件对主界面的配置。<br>B计划2：必须为界面配置文件准备替代方案，防止因为配置文件损坏造成的程序加载失败。&nbsp;&nbsp;<a href='http://www.cppblog.com/leetaolion/archive/2008/08/25/59921.html'>阅读全文</a><img src ="http://www.cppblog.com/leetaolion/aggbug/59921.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2008-08-25 16:14 <a href="http://www.cppblog.com/leetaolion/archive/2008/08/25/59921.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>重构故事——Chapter02</title><link>http://www.cppblog.com/leetaolion/archive/2008/08/14/58856.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Thu, 14 Aug 2008 09:47:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2008/08/14/58856.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/58856.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2008/08/14/58856.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/58856.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/58856.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 很多模块都需要在工程打开之时，获取一定的信息，比如工程是新建的还是打开的，临时目录在哪里，工程目录又在哪里。<br>工程管理模块就像个奶妈，把一系列的信息从XML文件或者从用户刚刚输入的信息都进来，然后再一个个的去NotifyProjectOpen。工程关闭之时在挨个通知他们要关灯了，NotifyProjectClose。怪不得耦合度高啊，全是被动式初始化，能不高吗？&nbsp;&nbsp;<a href='http://www.cppblog.com/leetaolion/archive/2008/08/14/58856.html'>阅读全文</a><img src ="http://www.cppblog.com/leetaolion/aggbug/58856.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2008-08-14 17:47 <a href="http://www.cppblog.com/leetaolion/archive/2008/08/14/58856.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>重构故事——Chapter01</title><link>http://www.cppblog.com/leetaolion/archive/2008/08/07/58278.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Thu, 07 Aug 2008 12:17:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2008/08/07/58278.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/58278.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2008/08/07/58278.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/58278.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/58278.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 比较头痛的是：原来在工程管理器中一系列的通知机制的修改，神秘的GIS模块，还有混乱不堪的数据库抽象层。按照Eclipse中对插件式的描述，这些插件不但作为插头插在别的插口上，还对外提供插口。&nbsp;&nbsp;<a href='http://www.cppblog.com/leetaolion/archive/2008/08/07/58278.html'>阅读全文</a><img src ="http://www.cppblog.com/leetaolion/aggbug/58278.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2008-08-07 20:17 <a href="http://www.cppblog.com/leetaolion/archive/2008/08/07/58278.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数值转换的想当然</title><link>http://www.cppblog.com/leetaolion/archive/2008/07/30/57540.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Wed, 30 Jul 2008 09:58:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2008/07/30/57540.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/57540.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2008/07/30/57540.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/57540.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/57540.html</trackback:ping><description><![CDATA[float fTmp = 0.51<br>int iTmp = fTmp;<br><br>iTmp = ??<br><br>答案是0，相当于Floor了。<br><br>0.99也是0，但是0.9999999就是1，这是因为二进制表示十进制小数会有精度损失。<br><br>Ceil也不对，0.1也会+1。<br><br>想要四舍五入取整，选择RoundTo(fTmp, 0)。<br>
<img src ="http://www.cppblog.com/leetaolion/aggbug/57540.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2008-07-30 17:58 <a href="http://www.cppblog.com/leetaolion/archive/2008/07/30/57540.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++ Builder实现可配置界面中遇到的问题【2、问题解决】 </title><link>http://www.cppblog.com/leetaolion/archive/2008/07/16/56303.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Wed, 16 Jul 2008 07:19:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2008/07/16/56303.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/56303.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2008/07/16/56303.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/56303.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/56303.html</trackback:ping><description><![CDATA[<br>设计变更：类数量不变，因为经过分析，是因为在exe和dll之间传递VCL特有数据类型所致。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 原先的二进制部署亦不变。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 定义数据类型，模仿TMenuItem的形式，里面封装了id, name, caption, hint, shortcut和一个void(*pFun)()的函数指针，该指针指向DLL内部的一个非成员函数，该函数内部调用类成员函数（前提是exe中的DLLManager的LoadDLL方法创建了该类的实例）。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EXE的AddMenu接口接受该数据类型的参数，根据其中的资源创建TAction，TAction和pFun一并压入自身容器中，所有Action的OnExecute均指向Main中的一个可以赋值给TNotifyEvent指针的函数。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 添加完毕，EXE执行激活操作（初始化的时候已经根据UI配置文件创建了状态为Idel的菜单）将添加的Action对号入座，激活菜单。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OnClick事件触发TNotifyEvent操作，遍历Exe容器，找到pFun()触发之。<br><br>问题解决！<br><br>下一步：美化界面。
<img src ="http://www.cppblog.com/leetaolion/aggbug/56303.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2008-07-16 15:19 <a href="http://www.cppblog.com/leetaolion/archive/2008/07/16/56303.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++ Builder实现可配置界面中遇到的问题【1、问题出现】</title><link>http://www.cppblog.com/leetaolion/archive/2008/07/15/56172.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Tue, 15 Jul 2008 04:11:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2008/07/15/56172.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/56172.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2008/07/15/56172.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/56172.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/56172.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 提供一个可配置的界面，供DLL们来注册菜单、按钮这些界面元素，界面元素所需的资源由DLL提供。DLL们需要外显的方法，绑定到自己注册的界面元素上。&nbsp;&nbsp;<a href='http://www.cppblog.com/leetaolion/archive/2008/07/15/56172.html'>阅读全文</a><img src ="http://www.cppblog.com/leetaolion/aggbug/56172.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2008-07-15 12:11 <a href="http://www.cppblog.com/leetaolion/archive/2008/07/15/56172.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++关键字：mutable、volatile、explicit以及__based</title><link>http://www.cppblog.com/leetaolion/archive/2008/04/09/46586.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Wed, 09 Apr 2008 02:13:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2008/04/09/46586.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/46586.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2008/04/09/46586.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/46586.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/46586.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: C++关键字：mutable、volatile、explicit以及__based&nbsp;&nbsp;<a href='http://www.cppblog.com/leetaolion/archive/2008/04/09/46586.html'>阅读全文</a><img src ="http://www.cppblog.com/leetaolion/aggbug/46586.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2008-04-09 10:13 <a href="http://www.cppblog.com/leetaolion/archive/2008/04/09/46586.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>好文如风，拂去数朵疑云——Designing Qt-Style C++ APIs by Matthias Ettrich </title><link>http://www.cppblog.com/leetaolion/archive/2008/03/03/43585.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Sun, 02 Mar 2008 23:59:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2008/03/03/43585.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/43585.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2008/03/03/43585.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/43585.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/43585.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 评价一片文章是否烂的标准是：你是否看过之后感觉不痛不痒。<br>一片烂文章的来由通常有两条，一是文章的烂是客观存在的，另一个就是看文章的人太麻木，以至于针尖戳背亦难觉痛痒。<br>这篇文章，释开了我心头的数朵疑云，漂浮如下。&nbsp;&nbsp;<a href='http://www.cppblog.com/leetaolion/archive/2008/03/03/43585.html'>阅读全文</a><img src ="http://www.cppblog.com/leetaolion/aggbug/43585.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2008-03-03 07:59 <a href="http://www.cppblog.com/leetaolion/archive/2008/03/03/43585.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我是笨人——读Rob Pike的《Notes on C Programming 》（附全文链接）</title><link>http://www.cppblog.com/leetaolion/archive/2008/02/29/43429.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Fri, 29 Feb 2008 00:39:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2008/02/29/43429.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/43429.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2008/02/29/43429.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/43429.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/43429.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Ken Thompson —— Unix 最初版本的设计者和实现者，禅宗偈语般地对 Pike 的原则4 作了强调：拿不准就穷举 <br>花哨的算法比简单算法更容易出 bug 、更难实现。尽量使用简单的算法配合简单的数据结构。<br>只要掌握了数据结构中的四大法宝，就可以包打天下，他们是：array 、linked list 、hash table、binary tree 。这四大法宝可不是各自为战的，灵活结合才能游刃有余。比如，一个用hash table组织的symbol table，其中是一个个由字符型array构成的linked list。&nbsp;&nbsp;<a href='http://www.cppblog.com/leetaolion/archive/2008/02/29/43429.html'>阅读全文</a><img src ="http://www.cppblog.com/leetaolion/aggbug/43429.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2008-02-29 08:39 <a href="http://www.cppblog.com/leetaolion/archive/2008/02/29/43429.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>std::sting, String, AnsiString转换成DWORD的3种途径</title><link>http://www.cppblog.com/leetaolion/archive/2008/01/10/40927.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Thu, 10 Jan 2008 13:10:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2008/01/10/40927.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/40927.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2008/01/10/40927.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/40927.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/40927.html</trackback:ping><description><![CDATA[被坑的够呛，做个记号<br><br>方法：1、2系转载<br>方法3系原创<br><br>如果你的数据不会大于0x7fff ffff，可以直接用StrToInt，安全点的方法是StrToIntDef<br><br>&nbsp;&nbsp;&nbsp; // 超出了int的最大表达范围，禁止用int中转<br>&nbsp;&nbsp;&nbsp; std::string str("2147483649");<br>&nbsp;&nbsp;&nbsp; DWORD num = atoi(str.c_str()); // way - 1，安全性不好<br>&nbsp;&nbsp;&nbsp; std::stringstream sstr;<br>&nbsp;&nbsp;&nbsp; sstr&lt;&lt;str;<br>&nbsp;&nbsp;&nbsp; sstr&gt;&gt;num;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // way - 2，安全性不好<br>&nbsp;&nbsp;&nbsp; sstr.clear();<br><br>方法3：<br><br>/*******************************************************************************<br>&nbsp;&nbsp; 字符串转成DWORD，模仿StrToIntDef()其中defalult = 0;<br>*******************************************************************************/<br>DWORD StrToDWORDDef(String sDigStr, DWORD dwDef = 0)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;return (DWORD) StrToInt64Def(sDigStr, dwDef);&nbsp; //安全性好，浪费几个始终周期和4字节内存<br>}
<img src ="http://www.cppblog.com/leetaolion/aggbug/40927.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2008-01-10 21:10 <a href="http://www.cppblog.com/leetaolion/archive/2008/01/10/40927.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>说说Windows的几项内存指标</title><link>http://www.cppblog.com/leetaolion/archive/2007/09/12/32045.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Wed, 12 Sep 2007 06:28:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2007/09/12/32045.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/32045.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2007/09/12/32045.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/32045.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/32045.html</trackback:ping><description><![CDATA[<p>声明一下，这里指的是Windows环境<span><br><br></span><span>需要重点关注的有三个指标</span><span>Private Bytes</span><span>、</span><span>Working Set</span><span>和</span><span>Virtual Size</span><span>，下面将分别说明：</span></p>
<p><span>1.<span>&nbsp;&nbsp;&nbsp; </span>Private Bytes</span><span>是进程私有的存储空间，通常在数量上和进程申请用以存储运行时需要的数据（</span><span>Runtime Data</span><span>）的</span><span>RAM</span><span>大小相等，一般不包括进程载入的</span><span>DLL</span><span>，除非这些</span><span>DLL</span><span>被重定向过（</span><span>Rebased</span><span>）。</span></p>
<p><span>2.<span>&nbsp;&nbsp;&nbsp; </span>Working Set</span><span>是指</span><span>RAM</span><span>占用量（数量上是</span><span>Private Bytes</span><span>和存储器映射文件（</span><span>Memory Mapped Files</span><span>之和）），只是进程地址空间中当前位于</span><span>RAM</span><span>中的那一部分。</span></p>
<span>3.<span>&nbsp;&nbsp;&nbsp; </span>Virtual Bytes</span><span>是进程的全部地址空间，包括</span><span>Private Bytes</span><span>和存储器映射文件。</span> <br><br>对应的Task Manager指标<br><br>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1"><span lang=EN-US style="COLOR: black; FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">&#216;<span style="FONT: 7pt 'Times New Roman'">&nbsp; </span></span></span><span lang=EN-US style="COLOR: black">Working Set</span><span style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，驻留集，当前在实际内存中有多少页面，即任务管理器中的</span><span lang=EN-US style="COLOR: black">Mem Usage</span><span style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span><span lang=EN-US style="COLOR: black"><span style="mso-spacerun: yes">&nbsp; </span><o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1"><span lang=EN-US style="COLOR: black; FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">&#216;<span style="FONT: 7pt 'Times New Roman'">&nbsp; </span></span></span><span lang=EN-US style="COLOR: black">Private Bytes</span><span style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，分配的私有虚拟内存总数，提交的内存，即任务管理器中的</span><span lang=EN-US style="COLOR: black">VM Size</span><span style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span><span lang=EN-US style="COLOR: black"><span style="mso-spacerun: yes">&nbsp; </span><o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1"><span lang=EN-US style="COLOR: black; FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">&#216;<span style="FONT: 7pt 'Times New Roman'">&nbsp; </span></span></span><span lang=EN-US style="COLOR: black">Virtual Bytes</span><span style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，虚拟地址空间的总体大小，包括共享页面。因为包含保留的内存，可能比前两个值大很多。</span><span lang=EN-US style="COLOR: black"><o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1"><span lang=EN-US style="COLOR: black; FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">&#216;<span style="FONT: 7pt 'Times New Roman'">&nbsp; </span></span></span><span lang=EN-US style="COLOR: black">Page Faults / sec</span><span style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（每秒钟内的页面错误数），每秒中出现的平均页面错误数。</span><span lang=EN-US style="COLOR: black"><o:p></o:p></span></p>
<img src ="http://www.cppblog.com/leetaolion/aggbug/32045.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2007-09-12 14:28 <a href="http://www.cppblog.com/leetaolion/archive/2007/09/12/32045.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>enum变量名的大小写不同，在BCB和VC下处理的也会不同，在坑边做个记号</title><link>http://www.cppblog.com/leetaolion/archive/2007/08/03/29261.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Fri, 03 Aug 2007 03:26:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2007/08/03/29261.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/29261.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2007/08/03/29261.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/29261.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/29261.html</trackback:ping><description><![CDATA[enum COLOR {Red = 0, Green = 2, Blue = 4, Yellow = 6, White, Black = 10};<br>//---------------------------------------------------------------------------<br>void test(void)<br>{<br>&nbsp;COLOR c1;<br>}<br>//大写的情况下，在BCB和VC下都可以编译通过<br><br>enum Color {Red = 0, Green = 2, Blue = 4, Yellow = 6, White, Black = 10};<br>void test(void)<br>{<br>&nbsp;Color c1;<br>}<br>//小写的情况下，BCB会出现编译错误E2379, statement missing;类型未声明<br><br>看来最保险的办法还是乖乖地加上enum关键字<br><br>为什么呢？在坑边做个记号。
<img src ="http://www.cppblog.com/leetaolion/aggbug/29261.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2007-08-03 11:26 <a href="http://www.cppblog.com/leetaolion/archive/2007/08/03/29261.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>