CHM

CHM

学习笔记 2009-01-06 22:50:54 阅读409 评论0 字号:

本人属参考手册流的程序员,  CHM,自然少不了,这段时间由于Firefox 的chm Reader 用不了,所以写东西一直在用Google,比较麻烦,今天实在郁闷了,只好找一个Linux下的替代品。 在网上翻了一圈,发现N多人用gnochm ,

第一,因为用的是非正常版本,没在RHN上注册,不好意思用 yum 命令。其实也用不了。
第二,Linux 的精神即是自己动手。

于是

随便下了一个,rpm  的,没装上,只找到 FedorCode 5 的,于是只好下源码包。

第一次只下了gnochm,正常解压,编译,
tar -zxvf gnochm-0.9.11.tar.gz
./configure
报了个错误,是什么忘了,Google一下,发现是缺少 perl-XML-Parser
光盘里有,装上即可。继续..
make
make install
过程没问题,结果却用不了。
You do not have all of the required Python modules to run gnochm. Check the gnochm README file for tips on how to fix this.
让我根据说明文件检查依懒,找了一圈,发现没有 PyCHM ,

光盘里没有,于是 下载PyChm

解压发现,是.py 的,于是

python setup.py install

报错,整整一大箩筐的错误和警告,看错误那意思,少了几个.h文件,继续Google 发现是少 chmlib , 下载 chmlib

解压。安装,继续 python setup.py install

在一堆的警告中,我发现安装成功了。

再次运行gnochm 仍然不行,再找,仍然让我检查依懒,只不过下面换成了 libchm.so.0

在系统里翻了一圈, find /usr -name "libchm.so.0"
发现在/usr/local/lib/libchm.so.0

在 /usr/lib 下建立符号连接  

ln -s  /usr/local/lib/libchm.so.0  /usr/lib/libchm.so.0

继续运行  gnochm  终于见到这家伙长什么样子..  这个坎坷.....

总算是见到了久违的CHM,但是不知道为什么,有些CHM里的表格边线不见了。看着直窜行,继续郁闷,

但是 总之有就比没有强。

PS:Linux 的依懒性实在是一大特色。

chmlib  下载地址:
http://download.chinaunix.net/download/0002000/1397.shtml

GNOCHM  下载地址:
http://sourceforge.net/project/showfiles.php?group_id=96084&package_id=102623&release_id=540825

PyCHM 下载地址:
http://sourceforge.net/project/showfiles.php?group_id=96084&package_id=102897
优快云技术文档大全(CHM) 构造函数与异常 这个话题在C++社区中经常会被提起,而在Delphi社区中似乎从来没有人注意过。也许由于语言的特性,使得Delphi程序员不必关心这个问题。但我想Delphi程序员也应该对该问题有所了解,知道语言为我们提供了什么而使得我们如此轻松,不必理会它。正所谓“身在福中须知福”。 我们知道,类的构造函数是没有返回值的,如果构造函数构造对象失败,不可能依靠返回错误代码。那么,在程序中如何标识构造函数的失败呢?最“标准”的方法就是:抛出一个异常。 构造函数失败,意味着对象的构造失败,那么抛出异常之后,这个“半死不活”的对象会被如何处理呢? 在此,我想读着有必要先对C++对这种情况的处理方式先有个了解。 在C++中,构造函数抛出异常后,析构函数不会被调用。这种做法是合理的,因为此时对象并没有被完整构造。 如果构造函数已经做了一些诸如分配内存、打开文件等操作的话,那么C++类需要有自己的成员来记住做过哪些动作。当然,这样做对于类的实现者来说非常麻烦,因此一般C++类的实现者都避免在构造函数中抛出异常(可以提供一个诸如Init和UnInit的成员函数,由构造函数或类的客户去调用它们,以处理初始化失败的情况)。而每一本C++的经典著作所提供的方案是使用智能指针(STL的标准类auto_ptr)。 在Object Pascal中,这个问题变得非常的简单,程序员不必为此大费周折。如果Object Pascal的类在构造函数中抛出异常,编译器会自动调用类的析构函数(由于析构函数不允许被重载,可以保证只有唯一一个析构函数,因此编译器不会迷惑于多个析构函数之中)。析构函数中一般会析构成员对象,而Free()方法保证了不会对nil对象(即尚未被创建的成员对象)调用析构函数,因此在使得代码简洁优美的前提下,又保证了安全。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值