金庆的专栏

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

#

     摘要: 本教程不是用来线性阅读的。 其顶层结构大致按库中不同的概念划分,(如处理调用多个插槽、传值到插槽及回传),并且在每一个这些概念中,首先介绍其基本思想,然后说明库较复杂的使用。 每个部分都标注了初级、 中级,或高级,以帮助指导读者。 初级部分包括库的所有使用者都该了解的信息;只要阅读了初级部分,就可以很好地使用信号库。 中级部分建立在初级 部分之上,是库的稍复杂的使用。 最后,高级部分详述了信号库很高级的应用,这往往需要对初级和中级内容扎实的实践经验;大多数用户无需阅读高级部分

  阅读全文
posted @ 2008-06-30 14:55 金庆 阅读(2178) | 评论 (3)编辑 收藏

     摘要: 下载:Boost.Python中文文档
Boost文档中Python库文档的翻译。  阅读全文
posted @ 2008-06-16 11:30 金庆 阅读(1827) | 评论 (0)编辑 收藏

     摘要: Boost.date_time库明确不支持VC6。实际上,只要稍作修改,就可兼容VC6。而且只是代码风格上的调整,修改后比原来的代码更简洁。  阅读全文
posted @ 2008-06-12 09:59 金庆 阅读(2050) | 评论 (3)编辑 收藏

     摘要: 一个函数模板即有特化版又有重载版,编译器会选哪个?以下代码来自:为什么不要特化函数模版 的例3  阅读全文
posted @ 2008-06-11 11:03 金庆 阅读(1338) | 评论 (4)编辑 收藏

     摘要: Boost.Python是一个开源C++库,它提供了一个简明的IDL式的接口,用于把C++类和函数绑定到Python。借助C++强大的编译时内省能力和最近发展的元编程技术,绑定工作完全用纯C++实现,而没有引入新的语法。 Boost.Python丰富的特性和高级接口,使得完全按混合系统设计软件包成为可能,并让程序员以轻松连贯的方式,同时使用 C++高效的编译时多态,和Python极端便利的运行时多态。  阅读全文
posted @ 2008-05-29 13:11 金庆 阅读(7631) | 评论 (15)编辑 收藏

     摘要: SIP generates the fastest wrappers; SWIG is mature and well documented; Boost.Python most elegant integration of C++ and Python  阅读全文
posted @ 2008-05-23 11:39 金庆 阅读(756) | 评论 (0)编辑 收藏

     摘要: 资源获取即初始化(RAII, Resource Acquisition Is Initialization)是指,当你获得一个资源的时候,不管这个资源是对象、内存、文件句柄或者其它什么,你都会在一个对象的构造函数中获得它,并且在该对象的析构函数中释放它。可以依据资源可变性和资源来源这两个特征,来对RAII进行分类。  阅读全文
posted @ 2008-05-20 14:24 金庆 阅读(6306) | 评论 (0)编辑 收藏

     摘要: C++关键字namespace提供的名字空间是开放的:你可以在任何时候扩展其中的内容。只要另外声明一个同名的名字空间即可。为得到真正封闭的名字空间,你需要使用class/union/struct,就像这样  阅读全文
posted @ 2008-05-19 16:44 金庆 阅读(1331) | 评论 (0)编辑 收藏

     摘要: 用CodeBlocks编译一个wxWidgets应用程序时,总是出现"undefined reference"。这里有两个问题,一是需要添加wxWidgets相关的库,二是这些库要按一定的顺序列出。  阅读全文
posted @ 2008-05-15 14:13 金庆 阅读(1781) | 评论 (1)编辑 收藏

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

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

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

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

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

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

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

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

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

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

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

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

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

     摘要: 原来的代码是参考“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 金庆 阅读(1711) | 评论 (1)编辑 收藏

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

列出全部内容
共11页: First 3 4 5 6 7 8 9 10 11