金庆的专栏

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  54 随笔 :: 0 文章 :: 149 评论 :: 0 Trackbacks

2008年5月8日 #

     摘要: 在设计时发现错误总比在编码编译时发现好。在编码编译时发现错误总比在单元测试中发现好。在单元测试中发现错误总比在调试中发现好。在调试中发现错误总比在系统测试中发现好。在系统测试中发现错误总比让用户发现好。让用户发现错误总比没有用户好。  阅读全文
posted @ 2008-05-08 15:38 金庆 阅读(35) | 评论 (0)编辑 收藏

2008年4月24日 #

     摘要: 在迭代器中支持指针成员选取运算符,没什么实质的意义,而仅仅是语法糖。我认为标准中将这规定为迭代器概念的一个特性是严重的错误。  阅读全文
posted @ 2008-04-24 10:16 金庆 阅读(1254) | 评论 (3)编辑 收藏

2008年4月23日 #

     摘要: C++标准库提供了四种序列容器:deque、list、vector,和basic_string。第四种序列容器basic_string,主要用于表示字符串,但它确实是不折不扣的序列容器,所以如果你非要这样做的话,你也可以用它来保存char和wchar_t以外的数据。在标准库中的容器中,只有vector保证其元素的存储空间是连续的。因此,它和C API兼容。
  阅读全文
posted @ 2008-04-23 15:36 金庆 阅读(1147) | 评论 (2)编辑 收藏

2008年4月22日 #

     摘要: 在C++的世界里,STL这个术语是有歧义的。有很多C++纯化论者会抓住一切机会纠正你对"STL"这个术语的错用,而告诉你应该使用"标准库"这样的称呼。 严格来说,STL指的是由Stepanov和他的同事们在上世纪80年代到90年代开发的、基于六个核心概念的通用模板库。  阅读全文
posted @ 2008-04-22 17:25 金庆 阅读(1373) | 评论 (1)编辑 收藏

2008年4月21日 #

     摘要: 模板参数一般是一个或者两个大写字母,例如T(type/value-type)、S(sequence/string)、 C(container/character)、VP(value policy type)等等。 这样做有两个原因。  阅读全文
posted @ 2008-04-21 17:25 金庆 阅读(1162) | 评论 (10)编辑 收藏

2008年4月9日 #

     摘要: 不管怎样,让我找到了log4delphi。明显国内用的人不多,不知大家是否有更好的日志类。
对我来说,log4delphi与log4j、log4cpp如出一辙,正合我意。
0.7版,近两年没更新了。看SVN也是没有任何更新。
下载了看,文档相当全。  阅读全文
posted @ 2008-04-09 17:13 金庆 阅读(889) | 评论 (0)编辑 收藏

2008年4月7日 #

     摘要: 如果不创建wxPanel,只创建wxStaticBitmap,窗口大小变化时,图片显示会不正常,并且指定图片位置和大小无效。wxStaticBitmap的父窗口是fmMain或pnl都可以。   阅读全文
posted @ 2008-04-07 11:37 金庆 阅读(47) | 评论 (0)编辑 收藏

2008年4月1日 #

     摘要: POD(Plain Old Data,普通旧式数据)的定义中,有三个相关的术语  阅读全文
posted @ 2008-04-01 10:03 金庆 阅读(705) | 评论 (0)编辑 收藏

2008年3月26日 #

     摘要: XRCed是wxPython附带的UI设计器,生成xrc资源文件,也可以输出python代码。本文对XRCed输出的python代码进行分析。  阅读全文
posted @ 2008-03-26 13:23 金庆 阅读(1081) | 评论 (5)编辑 收藏

2008年3月24日 #

     摘要: XRC的基本出发点是界面布局和程序逻辑的分离,即将界面布局代码采用XML的方式放在分离的文件之中;在程序中不涉及控件的创建和布局,只需要加载相应的资源并处理事件绑定即可。  阅读全文
posted @ 2008-03-24 13:52 金庆 阅读(113) | 评论 (0)编辑 收藏

2008年3月20日 #

     摘要: OmegaT是开源的翻译记忆软件,功能类似于Trados。
但是据说Trados学习使用较难,所以选个开源的OmegaT试试。  阅读全文
posted @ 2008-03-20 09:16 金庆 阅读(762) | 评论 (1)编辑 收藏

2008年3月17日 #

     摘要: 每次用bjam编译boost总是要查看帮助文件才行。
虽然现在的bjam编译命令只有两三个参数,可是不小心还是会错。
  阅读全文
posted @ 2008-03-17 17:21 金庆 阅读(1091) | 评论 (2)编辑 收藏

2008年3月14日 #

     摘要: boost.asio库明确说明不支持VC6。 stlsoft库某些组件无法兼容VC6(详细阅读了《Extended STL》,才知道为了VC6要耗费大量的精力,有些组件本身已很复杂,以至于需要排除VC6才能实现。) 今天使用boost.date_time时又发现VC6不行了。  阅读全文
posted @ 2008-03-14 15:58 金庆 阅读(2015) | 评论 (16)编辑 收藏

2008年3月13日 #

     摘要: 原来的代码是参考“Recipe 12.11. Using MSHTML to Parse XML or HTML”,利用htmlfile提取文本。将当前目录下的所有html文件转换为text文件。jigloo经过对10W+个html文件的测试,得出结论,htmlfile的容错比InternetExplorer.Application要差很多。  阅读全文
posted @ 2008-03-13 11:55 金庆 阅读(867) | 评论 (0)编辑 收藏

2008年1月29日 #

     摘要: 不过一直有个问题,就是写ini文件时断电的后果。前几天终于遇上了,断电后发现配置文件正好被清空了。结果程序因为缺乏必要的配置,根本无法运行。  阅读全文
posted @ 2008-01-29 12:16 金庆 阅读(1092) | 评论 (8)编辑 收藏

2008年1月17日 #

     摘要: 使用Boost.Python不需要“安装Boost”。这里的教程利用了 Boost.Build 项目,它会在需要时自动构建那些二进制库。当然,也可以使用其他的编译系统。所有“我无法编译Boost.Python”的问题, 99%以上是因为试图使用另一种编译系统,而没有先按这个教程做。  阅读全文
posted @ 2008-01-17 15:14 金庆 阅读(967) | 评论 (0)编辑 收藏

2008年1月11日 #

     摘要: 用bjam在各种环境下编译Boost , 没有十次也有八次了,但是前两天在一台XP上编译时,竟然失败。 查看输出,竟然是在创建目录时失败。信息如下:  阅读全文
posted @ 2008-01-11 09:38 金庆 阅读(852) | 评论 (1)编辑 收藏

2008年1月10日 #

     摘要: 以下代码来自《Imperfect C++》,输出是0, 2222还是0, 0?  阅读全文
posted @ 2008-01-10 11:36 金庆 阅读(511) | 评论 (7)编辑 收藏

2008年1月2日 #

     摘要: 对于一个数组ar,求其最外层的维数。 C语言当中惯用的是 sizeof(ar) / sizeof(ar[0]),可是在stlsoft库中是 sizeof(ar) / sizeof(0[ar])。 以前从没见过数组元素引用使用这样的形式:0[ar],能行吗?但是为什么用0[ar]呢?生僻的用法降低了可读性。是不是有什么优点呢?都是编译期计算,应该没有性能上的差别。  阅读全文
posted @ 2008-01-02 11:27 金庆 阅读(1359) | 评论 (3)编辑 收藏

2007年12月24日 #

     摘要: 试运行asio的async_client例程时,发现CPU占用很高,所以又写了一个相同功能但直接调用完成端口API的代码,进行比较,发现同样占用CPU。  阅读全文
posted @ 2007-12-24 16:25 金庆 阅读(907) | 评论 (0)编辑 收藏

2007年12月19日 #

     摘要: 可重入函数要解决的问题是,不在函数内部使用静态或全局数据,不返回静态或全局数据,也不调用不可重入函数。线程安全函数要解决的问题是,多个线程调用函数时访问资源冲突。函数如果使用静态变量,通过加锁后可以转成线程安全函数,但仍然有可能不是可重入的,比如strtok。  阅读全文
posted @ 2007-12-19 15:15 金庆 阅读(252) | 评论 (0)编辑 收藏

2007年12月17日 #

     摘要: wxPython中XRC文件i18n有两种方法,一种是使用多个XRC文件,每个语种一个XRC,另一种是只用一个XRC文件,各个语言使用一个mo翻译文件。本文是按照“wxPython中XRC文件对 i18N的支持”一文的指示,演示使用mo文件对XRC文件进行国际化翻译。   阅读全文
posted @ 2007-12-17 12:22 金庆 阅读(641) | 评论 (0)编辑 收藏

2007年12月14日 #

     摘要: BOOST_STATIC_ASSERT是一个简单但常用的宏,顾名思义起到编译期断言的功效,可以通过它,在编译时对开发环境以及类型定义进行检查。此类型检测对程序运行时无任何效率和空间上的影响。在实现上,BOOST_STATIC_ASSERT宏利用c++规范中,对不完整类型即不可实例化的类型,在对其进行sizeof运算时编译错误的特性,完成功能。  阅读全文
posted @ 2007-12-14 10:02 金庆 阅读(178) | 评论 (1)编辑 收藏

2007年12月12日 #

     摘要: 看到一段istream_iterator的使用代码,读取文件test.txt,将其中字符串输入到一个vector。STL中模板的大量使用,使得编译器的报错不知所云,让人对STL的应用望而却步。学习STL不仅要掌握STL中各种容器类,迭代器,算法,同时还要熟悉编译器常见的错误报告。  阅读全文
posted @ 2007-12-12 11:41 金庆 阅读(771) | 评论 (2)编辑 收藏

2007年12月4日 #

     摘要: TLMDTrackBar造成程序启动时崩溃。原因是创建窗体时,触发了TLMDTrackBar的OnChange事件。而此时窗体中的控件还没有全部创建完成,在事件中引用其它尚未创建的控件就会造成程序崩溃。但是标准的TTrackBar就不会在创建时触发OnChange事件。   阅读全文
posted @ 2007-12-04 15:08 金庆 阅读(566) | 评论 (0)编辑 收藏

2007年12月3日 #

     摘要: 我个人认为,这种做法对时间和效率太抠门,反而得不偿失。 Scrum Meeting一般不会超过15分钟,本身已经是高效了。为了压缩成5分钟,就取消了面对面交谈的机会,实在是不合算。   阅读全文
posted @ 2007-12-03 10:36 金庆 阅读(711) | 评论 (2)编辑 收藏

2007年11月21日 #

     摘要: 一个文件路径链表,需要按文件时间与文件名排序,先按时间排,时间相同按文件名排,代码如下。但是用key函数排序更高效。因为key只对每个项应用一次,然后按key值排序。而cmp函数必须两两比较才行。  阅读全文
posted @ 2007-11-21 10:36 金庆 阅读(762) | 评论 (0)编辑 收藏

2007年11月15日 #

     摘要: 软件工程与敏捷抓住了软件开发的不同方面。软件工程的强处在于技术性实践;而敏捷的优势则是社会工程。个人认为:软件工程是心中有招,而敏捷是无招胜有招。  阅读全文
posted @ 2007-11-15 14:09 金庆 阅读(702) | 评论 (0)编辑 收藏

2007年11月9日 #

     摘要: 在*.h文件中定义一个类时,理论上应该仅定义其公共接口,而不必声明其私有的成员,因为私有的成员属于实现部分,理应声明在.cpp文件中。 可是现有的C++标准是不支持将一个类的定义分到两个文件中去的。 有一个pimpl模式,可以变相完成这个要求。  阅读全文
posted @ 2007-11-09 12:07 金庆 阅读(1031) | 评论 (13)编辑 收藏

2007年11月3日 #

     摘要: 其中我对第4点中的观点不太赞同:“把你的时间花在代码的功能上, 而不是去把现有的代码改得对自己胃口(尤其对于那些copy/paste过来的代码);要找到系统的瓶颈进行优化,而不是对那些无益于系统整体性提高的地方做无用功。”因为最近总计至少有一周多的时间,我正是处理与功能和性能无关的代码更改。添加新功能之前,查看是否有重构的必要,这应该也是高效程序员的习惯之一吧。  阅读全文
posted @ 2007-11-03 10:58 金庆 阅读(1433) | 评论 (6)编辑 收藏

2007年10月31日 #

     摘要: 曾经看到这样一篇混音新算法的转载文章[3],一直想应用一下。再次翻到那篇文章,算法很简单,表达也很清晰,就是不知道原理。如果对多路混音该如何扩展算法呢?看来不能盲目照搬没有根据的算法。作者自己说,该算法对于5个通道以上就不太好,算法的好处是不会溢出。但有人反映声音有饱和的趋向。  阅读全文
posted @ 2007-10-31 17:27 金庆 阅读(1242) | 评论 (5)编辑 收藏

2007年10月29日 #

     摘要: WMF SDK指Microsoft的Windows Media Format SDK,支持以下三大功能:ASF文件的生成(包括ASF数据的流化)、ASF文件的编辑和ASF文件的播放(包括ASF媒体流的播放)。目前版本是WMF SDK9。 wmvcopy是其一个例程,实现了从头部开始截取n秒另存为文件。但在使用中发现有些错误。所以应该另设一个标志:m_fMaxDuration,到达MaxDuration时就可以结束文件的读取,而不必一直读到文件尾。一可解决崩溃错误,二可提高效率。   阅读全文
posted @ 2007-10-29 14:47 金庆 阅读(797) | 评论 (3)编辑 收藏

2007年10月26日 #

     摘要: 昨天临近下班,边敲代码边调试工作了一整天,大脑已经接近于混乱,所以碰上了灵异事件。因为没法重现,所以无法确定这是不是一个VSS的BUG。  阅读全文
posted @ 2007-10-26 09:39 金庆 阅读(624) | 评论 (3)编辑 收藏

2007年10月15日 #

     摘要: 方法是在架构设计之初,得到一些不同的架构方案,并对各个方案进行先期验证。这是一种排他法。所谓的先期验证其实只能做到先期的讨论,即文中所指的争论。一切都来自于个人经验,根本没有科学的数据,用数据进行比较只能是理想。但使用成熟技术避免风险是对的。如果有实际可行的架构,就直接套用,而不必考虑更先进的创新,避免新技术的风险。  阅读全文
posted @ 2007-10-15 10:42 金庆 阅读(731) | 评论 (6)编辑 收藏

2007年10月9日 #

     摘要: XYNTService本身是个服务程序,它可以在INI文件中配置调用的程序,将多个程序运行起来。MS Windows 2000 SDK工具中有个srvany,好象就是能让任一个普通程序运行为服务。  阅读全文
posted @ 2007-10-09 13:44 金庆 阅读(914) | 评论 (4)编辑 收藏

2007年9月30日 #

     摘要: C 标准库与STL的关系。STL即标准模板库(Standard Template Library),它包括五大类组件:算法、容器、迭代器、函数对象、适配器。STL是C 标准库的一部分,但不是全部。C 标准库是std名字空间中的所有内容,就是那些不带.h的头文件,如。  阅读全文
posted @ 2007-09-30 21:44 金庆 阅读(1257) | 评论 (2)编辑 收藏

2007年9月24日 #

     摘要: 摘要:3)芯片测试:有2k块芯片,已知好芯片比坏芯片多。请设计算法从其中找出一片好芯片,说明你所用的比较次数上限。好芯片和其它芯片比较时,能正确给出另一块芯片是好还是坏。坏芯片和其它芯片比较时,会随机的给出好或是坏。xlfddlfd 的算法很好,学习一下. 这个算法比我之前的算法要快得多.   阅读全文
posted @ 2007-09-24 15:01 金庆 阅读(176) | 评论 (0)编辑 收藏

2007年9月21日 #

     摘要: ACE与ASIO之间关于Socket编程的比较。ASIO是基本Boost开发的异步IO库,封装了Socket,简化基于socket程序的开发。 5.事件分派处理:ACE主要是注册handler类,当事件分派时,调用其handler的虚挂勾函数。ASIO是基于函数对象的hanlder事件分派。基于ASIO开发应用,要求程序员熟悉函数对象,函数指针,熟悉boost库中的boost::bind。我个人觉得,如果应用socket编程,使用ASIO开发比较好,开发效率比较高。  阅读全文
posted @ 2007-09-21 10:27 金庆 阅读(707) | 评论 (16)编辑 收藏

2007年9月20日 #

     摘要: Programming Python, 3rd Edition 翻译。本节列举了几个简短的C程序,它们以一种形式或另一种形式运行Python代码,来演示实际的通用的内嵌技术。  阅读全文
posted @ 2007-09-20 09:44 金庆 阅读(215) | 评论 (0)编辑 收藏

2007年9月11日 #

     摘要: 你是否需要自动化工具。一位开发者从任务板上摘下一张故事卡,把它拿到自己的桌子上——卡片给她带来触感,那种实实在在的拥有的感觉,她亲手把自己的名字写到卡片上,再走回去轻轻地把卡片放到任务板上“进行中”的格子里。或许是绝大多数自动化工具太强大了,而我所需的仅仅是领取任务。只有当异地开发,如现今较流行的虚拟项目管理中,才能显示此类自动化工具的威力。可能最中心的自动化工具是版本控制,如SVN,但使用定期的压缩备份也是一个可行的方案。  阅读全文
posted @ 2007-09-11 10:59 金庆 阅读(669) | 评论 (0)编辑 收藏

仅列出标题  下一页