CHM帮助文件,用HTML Help Workshop的hcw.exe来做,极不方便。但抛开GUI界面,手动编辑它的三种文件(.hhp+.htm+.hhc),倒而方便和容易操作。

在这里,我们把CHM帮助文件理解为一个"移动硬盘",里面的路径问题部好解决。
<------------------------.hhp--------------------->
hhp //
最好用绝对路径,相对于hhp文件的路径 也可以)
[OPTIONS]
Binary TOC=Yes
Compatibility=1.1 or later
Compiled file=tulater.chm
Contents file=D:\chm\aTips.hhc
Default Window=dfw
Default topic=main1.htm
Display compile progress=No
Error log file=Errlog.txt
Full-text search=Yes
Language=0x804 中文(中国)
Title=tulater技巧收集
[WINDOWS]
dfw="tulater","D:\chm\aTips.hhc",,"main1.htm","main1.htm",,,,,0x63520,400,0x304e,,,,,,,,0
[FILES]
main1.htm
zz2z.JPG
D:\html\1.htm

//这里加入要加进CHM里的文件
//加入CHM后,放到"移动硬盘"的根目录里,原来的路径信息没有保留。
//不仅可以把网页,图片加入CHM,任意文件也能(Flash,声音文件等等)都能加入其中.
//网页里最好不要有png的图片,否则无没显示
[MERGE FILES]
万一_Delphi.chm
VCL组件的属性和方法详解.chm
   tulater 
<-----------------------.htm--------------------->
htm//
注意网页里的超链接,只能用相对于htm文件的路径
/zz2z.JPG 是指hhp文件的路径,也即是根目录()相对于hhc创建的虚拟目录
<-----------------------.hhc---begin----------------->
.hhc文件是形成树形的参数。
//用相对于.hhc的路径
<UL>
</UL>
一对UL形成内陷一层。
          
<LI><OBJECT type="text/sitemap">    
                  
<param name="Name" value="10">
                  
<param name="Local" value="0/1/2.htm">                       
          
</OBJECT>
一个
<LI>生成一个结点:例子如下

<-----------------------.hhc---begin----------------->
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
<!-- Sitemap 1.0 -->
</HEAD><BODY>
<OBJECT type="text/site properties">
    
<param name="ImageType" value="Folder">
</OBJECT>
<!--树形begin -->
       <UL><!--第一层begin -->
       
<LI><OBJECT type="text/sitemap">    
           
 <param name="Name" value="00"> <!--结点名称 -->        
           
 </OBJECT>
       
<LI><OBJECT type="text/sitemap">    
             
<param name="Name" value="01">
             
<param name="Local" value="0/1/2.htm"> <!--结点链向的文件,是指向hhp[files]的文件-->  
                <!--,有这个参数,图标是一篇文档的图样,没有"Local"参数,就是一个文件夹的图标-->                      
       
      </OBJECT>
       
<LI> <OBJECT type="text/sitemap">    
             
<param name="Name" value="02">                           
       
      </OBJECT>
       
                     <UL><!--第二层begin-->
 
                            <LI><OBJECT type="text/sitemap">    
 
                                  <param name="Name" value="10">
 
                                  <param name="Local" value="0/1/2.htm">                       
  
                                  </OBJECT>
                             <LI><OBJECT type="text/sitemap">    
 
                                  <param name="Name" value="11">                      
 
                                  </OBJECT>
                                                         <UL><!--第三层begin -->
      
                                                   <LI><OBJECT type="text/sitemap">    
     
                                                          <param name="Name" value="2">    
   
                                                            <param name="Local" value="0/1/2.htm">     
 
                                                              </OBJECT>
                                                         
</UL><!--第三层end -->
      
                     </UL><!--第二层end -->
        </UL><!--第一层end -->
<!--树形end -->    
</BODY></HTML>
<-----------------------.hhc-end-------------------->
如果全文搜索无效(
1)网页字符集为gb2312,
2)对文本文件无效,
3)没勾选只搜索标题,
4)没有注册
itircl.dll
5)不要在要搜索内容前加HTML特殊符号,空格除外
)外,弹出
"HHC6003: The file itircl.dll has not been registered correctly",错误
Look for itcc.dll on your system. If it's there, register it using:
regsvr32 c:\windows\system\itcc.dll
详细参见:http://frogleg.mvps.org/helptechnologies/oldjunque/itircl.htm