- 類(lèi)型:反編譯(譯逆工程)大小:114KB語(yǔ)言:中文 評(píng)分:7.1
- 標(biāo)簽:
Q:HugeCHM是什么?
A:這是一個(gè)CHM打包、拆分工具,不僅可以將海量(測(cè)試近20萬(wàn)個(gè))HTML文件打包成CHM,而且可以反編譯CHM,包括CHM內(nèi)部控制文件。
Q:現(xiàn)在已經(jīng)有N多CHM打包工具,為什么還要開(kāi)發(fā)HugeCHM?
A:現(xiàn)在CHM打包工具確實(shí)很多,但都有一個(gè)共同特點(diǎn):基于微軟的HHA.DLL實(shí)現(xiàn)。因此也都有一個(gè)天生的缺陷:如果要打包的文件太多,就會(huì)出現(xiàn)“內(nèi)存不足”的錯(cuò)誤。例如我要把近20萬(wàn)個(gè)文件打成一個(gè)CHM,從最簡(jiǎn)單的HHC試到收費(fèi)的打包軟件,都在相同的地方出現(xiàn)相同的錯(cuò)誤。其原因,就在于HHA.DLL功能太復(fù)雜了,內(nèi)部需要生成很多表格,規(guī)模一大自然內(nèi)存就爆了。但是我認(rèn)為對(duì)于海量HTML來(lái)說(shuō),這些復(fù)雜的功能真的沒(méi)啥用。
既然基于HHA.DLL的軟件在處理海量文件時(shí)死路一條,也就只能指望不依賴(lài)于HHA.DLL的軟件了。以前在寫(xiě)《常見(jiàn)電子書(shū)格式及其反編譯思路》的時(shí)候,我以為開(kāi)源的hhm既然敢叫HTML Help Maker,應(yīng)該能夠擺脫HHA.DLL的限制,沒(méi)想到到它的官方網(wǎng)站一看,卻看到一行字:This is a program that aims to produce MS' CHM (Compiled HTML Help) files. Currently it can create the archive format, but no internal files.再拜讀一下源代碼,基本上相當(dāng)于自己實(shí)現(xiàn)了Windows下ITS文件訪(fǎng)問(wèn)接口,但是不能生成CHM文件內(nèi)部的控制文件,頂多算個(gè)半成品。擺出這樣的烏龍,我想是因?yàn)槲④洓](méi)有公開(kāi)CHM的內(nèi)部文件格式,導(dǎo)致Paul Wise寫(xiě)的《Unofficial (Preliminary) HTML Help Specification》里也有很多unknown的地方。
還好我以前寫(xiě)UnEBook的時(shí)候,拜讀過(guò)Christian Ernst Rysgaard的《Htmlhelp Forensics》,知道微軟的ITStorage可以對(duì)CHM文件(ITS格式)進(jìn)行操作,這個(gè)畢竟是官方提供的接口,比民間版的要靠得住些。只不過(guò)在UnEBook里是用來(lái)讀CHM,這次改成寫(xiě)CHM而已,CHM內(nèi)部控制文件則在參考Paul Wise寫(xiě)的《Unofficial (Preliminary) HTML Help Specification》基礎(chǔ)上,逐文件、逐字節(jié)加以校對(duì)。
Q:與其他CHM打包軟件相比,HugeCHM有什么特點(diǎn)?
A:HugeCHM最大的特色是沒(méi)有用HHA.DLL,而是直接通過(guò)ITStorage接口對(duì)CHM文件進(jìn)行操作,因此能對(duì)CHM內(nèi)部控制文件進(jìn)行更精準(zhǔn)的控制(其實(shí)是進(jìn)行了大刀闊斧的刪減),從而:
能夠?qū)A縃TML進(jìn)行打包。普通CHM打包工具不怕文件大(總長(zhǎng)度不超過(guò)2 GB應(yīng)該沒(méi)事),但怕文件太多,而HugeCHM專(zhuān)門(mén)就是為處理海量HTML開(kāi)發(fā)的。
軟件界面簡(jiǎn)潔,連一般HTML打包軟件常見(jiàn)的文件列表都沒(méi)有。因?yàn)樵谔幚砗A课募䲡r(shí),文件列表實(shí)在是一件既耗時(shí)間又耗內(nèi)存的工作,但是一般打包工具為了生成HHA.DLL所需的HHP文件,不得不花費(fèi)時(shí)間、內(nèi)存生成文件列表,HugeCHM則不需要。
生成的CHM文件界面也很簡(jiǎn)潔,沒(méi)有目錄、索引、搜索、書(shū)簽等導(dǎo)航項(xiàng)。其實(shí)在面對(duì)海量HTML文件時(shí),我根本就不相信會(huì)有人打算去做這些東西。
我本人平時(shí)比較喜歡看電子書(shū),知道目前國(guó)內(nèi)某些人在做電子書(shū)時(shí),總喜歡給電子書(shū)加一個(gè)封面,點(diǎn)進(jìn)去才是真正的內(nèi)容 ,并且總想在某處引導(dǎo)到一個(gè)說(shuō)明頁(yè),介紹一下制作者。用普通CHM打包工具實(shí)現(xiàn)這些當(dāng)然不成問(wèn)題,不過(guò)要點(diǎn)技巧;而HugeCHM簡(jiǎn)化了這種操作,用戶(hù)直接選擇封面頁(yè)、目錄頁(yè) 、說(shuō)明頁(yè)即可,并且在生成的CHM文件工具條中自動(dòng)加上“封面”、“關(guān)于”按鈕。當(dāng)然如果不喜歡,也可以選擇不顯示工具條。
對(duì)于海量文件,不論是打包還是拆分都將是一個(gè)漫長(zhǎng)的過(guò)程,因此帶自動(dòng)關(guān)機(jī)選項(xiàng),便于夜間無(wú)人值守下運(yùn)行。
與普通CHM打包軟件相比,生成的速度要快那么一點(diǎn)點(diǎn),生成時(shí)消耗的內(nèi)存要少那么一點(diǎn)點(diǎn),最終生成的CHM文件也要小那么一點(diǎn)點(diǎn)。
本文導(dǎo)航
- 第1頁(yè): 首頁(yè)
- 第2頁(yè): CHM文件拆分教程
- 第3頁(yè): HugeCHM是什么