Doxygen + graphviz + Windows Help Workshop代码文档生成工具

1.Doxygen

Doxygen能将程序中的特定批注转换成为说明文件。它可以依据程序本身的结构,将程序中按规范注释的批注经过处理生成一个纯粹的参考手册,通过提取代码结构或借助自动生成的包含依赖图(include dependency graphs)、继承图(inheritance diagram)以及协作图(collaboration diagram)来可视化文档之间的关系, Doxygen生成的帮助文档的格式可以是CHM、RTF、PostScript、PDF、HTML等。
下载地址 https://www.doxygen.nl/download.html

2.graphviz

Graphviz(Graph Visualization Software)是一个由AT&T实验室启动的开源工具包,用于绘制DOT语言脚本描述的图形。要使用Doxygen生成依赖图、继承图以及协作图,必须先安装graphviz软件。
下载地址 https://graphviz.org/download/

3.HTML Help WorkShop

微软出品的HTML Help WorkShop是制作CHM文件的最佳工具,它能将HTML文件编译生成CHM文档。Doxygen软件默认生成HTML文件或Latex文件,我们要通过HTML生成CHM文档,需要先安装HTML Help WorkShop软件,并在Doxygen中进行关联
下载地址 https://docs.microsoft.com/zh-cn/previous-versions/windows/desktop/htmlhelp/microsoft-html-help-downloads

规范

规范综述

简要的说,Doxygen注释块其实就是在C、C++注释块的基础添加一些额外标识,使Doxygen把它识别出来, 并将它组织到生成的文档中去。
在每个代码项中都可以有两类描述:一种就是brief描述,另一种就是detailed。两种都是可选的,但不能同时没有。简述(brief)就是在一行内简述地描述。而详细描述(detailed)则提供更长,更详细的文档。
在Doxygen中,主要通过以下方法将注释块标识成详细(detailed)描述:

JavaDoc风格,在C风格注释块开始使用两个星号’*’:

/**
*  ... 描述 ...
*/

Qt风格代码注释,即在C风格注释块开始处添加一个叹号’!’:

/*!
* ... 描述 ...
*/

使用连续两个以上C++注释行所组成的注释块, 而每个注释行开始处要多写一个斜杠或写一个叹号:

///
/// ... 描述 ...
///

同样的,简要说明(brief)有也有多种方式标识,这里推荐使用@brief命令强制说明,例如

/** 
* @brief 简要注释Brief Description. 
*/

```css
/** 
* @brief 简要注释Brief Description. 
*/

**注意以下几点:**

1.Doxygen并不处理所有的注释,doxygen重点关注与程序结构有关的注释,比如:文件、类、结构、函数、全局变量、宏等注释,而忽略函数内局部变量、代码等的注释。
2.注释应写在对应的函数或变量前面。JavaDoc风格下,自动会把第一个句号"."前的文本作为简要注释,后面的为详细注释。你也可以用空行把简要注释和详细注释分开。注意要设置JAVADOC_AUTOBRIEF或者QT_AUTOBRIEF设为YES。
3.先从文件开始注释,然后是所在文件的全局函数、结构体、枚举变量、命名空间→命名空间中的类→成员函数和成员变量。
4.Doxygen无法为DLL中定义的类导出文档。

```cpp
@file

档案的批注说明。

@author

作者的信息

@brief

用于class 或function的批注中,后面为class 或function的简易说明。

@param

格式为

@param arg_name 参数说明

主要用于函式说明中,后面接参数的名字,然后再接关于该参数的说明。

@return

后面接函数传回值的说明。用于function的批注中。说明该函数的传回值。

@retval

格式为

@retval value 传回值说明

主要用于函式说明中,说明特定传回值的意义。所以后面要先接一个传回值。然后在放该传回值的说明。

在这里插入图片描述
在这里插入图片描述
异常

模块
Modules是一种归组things在分离的page上的方式。组的成员可以是file,namespace,classes,functions,variables,enums,typedefs和defines,但也可以是其他groups。
要定义一个group,应该在一个特殊注释块放置\defgroup。命令的第一个参数应该是唯一标志该group的标签。要将一个entity归为某个group的一个member,在entity前放置\ingroup命令。第二个参数是group的title。
要避免在注释中每个member前放置\ingroup命令,可以将member用@{和@}封装起来。@{@}标记可以放置group的注释中,也可以在一个独立的注释块
使用这些group的标记符号groups也可以嵌套。
如果多次使用一个group标签,将会出错。如果不希望doxygen强行执行唯一标签,可以使用\addtogroup而非\defgroup。运作方式和\defgroup很像,但是如果该group已经定义,它默认向已存在的注释中添加一个新的项。Group的title对此命令是可选的,也可以考虑使用它。

/*

  • @defgroup 模块名 模块的说明文字
  • @{
    /
    … 定义的内容 …
    /
    * @} */
    // 模块结尾这样可以在其他地方以更加详细的说明添加members到一个group。

如果一个compound(例如一个class或file)有多个members,通常我们希望将其group。Doxygen已经可以自动按照类型和protection级别将这些things归组在一起,但可能你会认为仅仅这样是不够的或者这种缺省的方法是错误的。例如你认为有不同(语法)的类型需要归入同一个group(语意)。
这样定义一个member group:

//@{

//@}
块或者使用。

/@{/

/@}/

注释实例
1.文件注释
举例说明如下,在代码文件头部写上这段注释。可以看到可以标注一些文本名称、作者、邮件、版本、日期、介绍、以及版本详细记录。

/**
  * @file     	sensor.c
  * @author   	aaa
  * @email   	aaa@163.com
  * @version	V1.0
  * @date    	20211231
  * @license  	aaa
  * @brief   	aaaa
  * @detail		detail
  * @attention
  *  This file is aaaaaaaaa.   					            					\n
  *   																			\n
  * @htmlonly 
  * <span style="font-weight: bold">History</span> 
  * @endhtmlonly 
  * Version|Auther|Date|Describe
  * ------|----|------|-------- 
  * V1.0|aaa|20211231|Create File
  * <h2><center>&copy;COPYRIGHT 2017 WELLCASA All Rights Reserved.</center></h2>
  */  

2.类和成员注释

/**

  • @class <class‐name> [header‐file] [<header‐name]
  • @brief brief description
  • @author
  • @note
  • detailed description
    */
    如果对文件、结构体、联合体、类或者枚举的成员进行文档注释的话,并且要在成员中间添加注释,而这些注释往往都是在每个成员后面。为此,可以使用在注释段中使用’<'标识。

int var; /**< Detailed description after the member */
对一个类的注释例子如下:

class Test
{
public:
    /** @brief A enum, with inline docs */
    enum TEnum 
    {
        TVal1, /**< enum value TVal1. */ 
        TVal2, /**< enum value TVal2. */ 
        TVal3 /**< enum value TVal3. */ 
    } 
   *enumPtr, /**< enum pointer. */
    enumVar; /**< enum variable. */
    /** @brief A constructor. */ 
Test(); 
/** @brief A destructor. */ 
~Test();
 /** @brief a normal member taking two arguments and returning an integer value. */ 
    int testMe(int a,const char *s); 

    /** @brief A pure virtual member. 
    * @param[in] c1 the first argument. 
    * @param[in] c2 the second argument. 
    * @see testMe() 

3.函数注释

直接看案例如下,见明知意,不在赘述。

	/**
		* @brief		can send the message
		* @param[in]	canx : The Number of CAN
		* @param[in]	id : the can id	
		* @param[in]	p : the data will be sent
		* @param[in]	size : the data size
		* @param[in]	is_check_send_time : is need check out the time out
		* @note	Notice that the size of the size is smaller than the size of the buffer.		
		* @return		
		*	+1 Send successfully \n
		*	-1 input parameter error \n
		*	-2 canx initialize error \n
		*	-3 canx time out error \n
		* @par Sample
		* @code
		*	u8 p[8] = {0};
		*	res_ res = 0; 
		* 	res = can_send_msg(CAN1,1,p,0x11,8,1);
		* @endcode
		*/							
	extern s32 can_send_msg(const CAN_TypeDef * canx,
							const u32 id,
							const u8 *p,
							const u8 size,
							const u8 is_check_send_time);	

打开注释网页后展示如下。

4.枚举注释

直接看案例如下,见明知意,不在赘述。

/** bool */  
typedef enum
{
    false = 0,  /**< FALSE 0  */
    true = 1    /**< TRUE  1  */
}bool;

5.全局变量和宏

6.模块注释
Group定义命令的优先级(从高到低):\ingroup,\defgroup,\addtogroup,\weakgroup。而\weakgroup很像一个有低优先级的\addtogroup。它被设计为实现一个“lazy”的group定义方法:可以在.h文件中使用高优先级来定义结构,在.cpp文件中使用\weakgroup这样不会重复.h文件中的层次结构。
在实际使用中,我们可以看到具体的网页展示如下。

在图中有个BSP下的LED模块,这个模块就是承载驱动文件LED。具体代码如下,为了显示效果,我把函数的注释删除了。

/**
  * @file     	aa.h
  * @author   	aaa
  * @email   	aaa@163.com
  * @version	V1.01
  * @date    	20211231
  * @license  	aaa
  * @brief   	Controller Area Network
  * @detail		detail
  * @attention
  *  This file is part of aaa		\n
  *   																			\n
  * @htmlonly 
  * <span style="font-weight: bold">History</span> 
  * @endhtmlonly 
  * Version|Auther|Date|Describe
  * ------|----|------|-------- 
  * V1.0|aaa|20211231|Create File
  * <h2><center>&copy;COPYRIGHT 2017 WELLCASA All Rights Reserved.</center></h2>
  */  
/** @addtogroup  BSP
  * @{
  */
/**
  * @brief Light Emitting Diode
  */
/** @addtogroup LED 
  * @{
  */ 
#ifndef __LED_H__
#define __LED_H__
#ifdef __cplusplus
extern "C" {
#endif 
	#include "bsp.h"
	extern s32  led_init(Led_TypeDef led);
	extern s32 	led_config(void);
	extern s32  led_on(Led_TypeDef led);
	extern s32  led_off(Led_TypeDef led);
	extern s32  led_toggle(Led_TypeDef led);
#ifdef __cplusplus
}
#endif
#endif  /*__LED_H__ */
/**
  * @}
  */
/**
  * @}
  */
/******************* (C)COPYRIGHT 2021 aaa All Rights Reserved. *****END OF FILE****/

前面说明了是C语言的,C语言没有继承一说,在C++中有时候需要展示继承。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Microsoft Help Workshop——HLP文件轻松做 2002-04-14 11:56作者:陈劲宏出处:Yesky责任编辑:   由于HLP格式已经逐 渐被CHM格式所替代,所以制作HLP格式帮助文档工具相对来说要少一些。一般有Windows Help Designer/WinHelp Edition、 helppad、Windows帮助大师helper、RTF2HLP和我们这里所介绍的Microsoft Help Workshop两种。因为有些工具软件使用时最终还是要Microsoft Help Workshop的支持,我们这里以Microsoft Help Workshop为例介绍一下它的使用方法。 Microsoft Help Workshop(以下简称为HW)是一款专业的制作HLP文件的软件。HW与HTML Help Workshop均是微软开发的制作帮助文件的软件。软件继续保持了简洁、制作方便简单的特点。我们可以到微软的网站去下载,但如果你要下载汉化版的话, 请到http://www.guxiang.com/epubcn/soft-down/hlp/p-helpworkshop403.exe去下载好 了。毕竟汉化版对于英文不太好的朋友来说,还是方便一些。需要说明的是,由于HLP格式出现较早,目前大部分的基于Web的技术都不可以使用。但是由于 HLP文件的界面整洁、对文件的压缩比率较高等特点,目前还广泛应用在很多领域当中。操作步骤为:   1.运行HW以后,单击菜单“文件”|“新建”选项,选择默认的“帮助项目”选项,单击OK(好了)按钮。将工程文件保存在某一目录下并给予文件名。此时弹出主编辑窗口,如图1。   2.单击右边的“选项”按钮,在弹出的对话框中我们可以设置文件的属性。包括文件标题、压缩率、排序、各种文件信息、搜索支持、宏定义、字体信息等等。 3.单击“文件”按钮,加入需要编译的RTF文件,注意软件只支持导入RTF文件,如图3-2。   4.单击“窗口”按钮,在弹出对话框中设置窗口名称和窗口属性。如图3-3。   以下的按钮分别是“位图(Bitmaps…)”、“映射(Maps…)”、“别名(Alias…)”、“设置(Config…)”、“数据文件(Data Files…)”,如果读者愿意可以一一设置,这里就不详述了。 5.设置好文件信息以后,单击工具栏上的“编译”(Compile)按钮(在?按钮的左边即是),或者单击主编辑窗口右下角的“存盘并编译”(Save and Compile)按钮,此时软件会自动编译输出HLP文件并报告编译信息。 由于HLP文件所支持的格式只能是RTF,所以用户在使用HW之前必须先用WORD制作好RTF文件。 二、制作前的准备   1、下载并安装 HTML Help WorkShop   你可以在微软的站点上下载 HHW 软件,也可以直接 按此下载。   下载 HHW 软件后直接运行 htmlhelp.exe,一路“next”就可以安装成功。HHW 内还含一个图形编辑处理程序(HTML Help Image Editor),图形文件的处理也可以由它简单处理。   2、几个概念   相对来讲制作 chm 文件比较简单,大量的工作实际上是在前期制作 html 文件上,你在 chm 文件中所看到和听到的,与你在浏览器中的结果是一样的。你可以专门为制作 chm 文件而编制 HTML,也可以直接利用现成的小型个人主页快速做成 chm 文件以便向外发放,所不同的是,在个人网站上每个 HTML 文件之间必须由超级链接相连,而用来制作 chm 文件的 HTML 文件组里,允许有独立的 HTML 文件,用户可以通过导航嵌窗来实现对其访问。   现在让我们先了解一下几个用到的概念:   (1)项目文件[Project -- .hhp文件]:包含创建 chm 文件所需的 HTML 文件信息、目录表文件信息、索引文件信息、窗口属性、搜索、书签定义等内容。一个chm文件对应有一个项目文件。[设置方法]   (2)目录表文件[Contents -- .hhc文件]:包含目录表中每个标题与 HTML 文件的关联关系。目录表就好像是一本书的目录。该文件不是必需的,如果创建的 chm 文件没有导航嵌窗,就可以不创建 .hhc 文件,这样一来 HTML 中的跳转就要借助其内部的超级链接了。[创建方法]   (3)索引文件[Index -- .hhk文件]:一些专业书籍在其后面一般有个索引表,利用已经排序的字母、单词、词组来帮助读者快速定位到需要的一个或几个位置。在 chm 中也可以使用索引。索引文件中就包含每个关键词(keyword)与 HTML 文件的对应关系。与目录文件中的标题不同的是,一个关键词可以对应多个 HTML 文件。索引文件也不是必需的,如果你的 chm 文件的信息不是太复杂,不创建也行。[创建方法]   (4)搜索:要在 chm 文件中能使用全文搜索功能,只要在创建 chm 文件时打开一个开关就行了,这样只要在搜索框中输入要搜索的内容,chm 就会把全部包含该内容的 HTML 文件列出来,并把搜索内容高亮显示。但是如果使用搜索功能,chm 文件会稍大一点。[设置方法]   (5)书签:在我们阅读图书时,有时会在一些地方放个书签,以便下次能快速找到作标记的地方,在 chm 中同样允许你在感兴趣的地方作标记。[设置方法]   (6)窗口属性:是指 chm 文件的介面窗口。你可以自由定义窗口位置、大小、按钮、导航嵌窗、显示模式等。[设置方法]   目录、索引、搜索和书签是 chm 文件左边导航嵌窗中的四个导航选项,任何一个都可以随意打开或关闭,当四个功能全部关闭时,导航嵌窗将自动消失。   因为 HHW 对chm 的控制非常灵活,所以你可以制作出功能强大的 chm 文件,也可以制作出非常简单的 chm 文件。另外在制作中我们需要指明的是 HTML 文件,而图形、视频、声音等文件不需要指明位置, HHW 会根据 HTML 文件中的链接找到它们。 三、制作简单的 chm 文件   我们把没有导航功能的 chm 文件称作“简单的 chm 文件”,它没有导航嵌窗,网页之间的跳转全部依靠 HTML 文件中的超级链接。   下面介绍制作简单的 chm 文件(无导航功能)的步骤,这些步骤的叙述将在“制作较复杂 chm 文件”中省略或简化,所以不可不读。   1、制作没有功能按钮的 chm 文件   首先你最好把所有要用到的 html 文件及有关图形、声音、视频等文件复制到一个空文件夹中(当然可以包含子文件夹),并在 IE 浏览器中检验通过,然后启动 HHW,在 File菜单中选[New],弹出新建文件对话框。   HHW 可以新建:项目[Project]、文本文件[Text]、HTML文件、目录表文件[Table of Contents]和索引文件[Index]。我们选“项目”,弹出新建项目向导,提示你可以把以前的 WinHelp 项目文件转换为 HHW 项目文件。我们直接按“下一步”。   在这里指定你欲创建的项目的位置和文件名,我们按[Browse],选择我们的 HTML 文件所在目录,并定义一个项目文件名如 test1(程序自动添加 .hhp 后缀),按“下一步”。在出现的对话框中指定已经存在的文件。因为我们目前只有 HTML 文件而没有目录文件(.hhc)和索引文件(.hhk),所以只在[HTML files]前面打上小勾。按“下一步”,进入添加 HTML 文件的窗口,按[Add]按钮,把有关的标题 HTML 文件全部选中加入(可以一次全部选中加入)。按“完成”后,程序就会进入项目编辑界面——也就是 HHW 的主界面,参考图(2)。   首先我们给将来的 chm 文件的窗口标题条指定与 chm 内容相符的文字(如果不指定,则软件默认为“帮助”):按[Project]项目选项中左边第三个按钮“新建/编辑窗口显示风格”,在弹出的窗口类型中随便输入一个名字如“12”,按“OK”后就会进入“窗口属性”定义对话框。在[General]选项卡中的[Title bar text]中输入标题条文字“test1--最简单的 chm 文件”如图(3)。   因为我们不需要导航嵌窗及功能按钮部分,所以再确认一下在导航嵌窗[Navigation Pane]中不要选中[Window with navigation pane, topic pane, and button bar],如图(4)。按确定退回 HHW 主界面。   现在按[Compiled HTML file]编译按钮或者通过在[File]菜单中选择[Compile]进行编译,chm 文件就会在指定位置创建完成。这时你可以运行一下新创建的 chm 文件,不难发现,chm 已经包含了所有用到的 HTML 文件、图形文件等,相当于是把全部网页文件打包到 chm 文件中了。如图(5)就是最简单的chm文件显示效果。很简单吧?   3、制作包含功能按钮的 chm 文件   与上面操作相同,不同的是在进行到“窗口属性”定义操作时,在[General]中指定 chm 文件标题栏中的文字“test2---带功能按钮的 chm 文件”,在[Button]中指定欲在 chm 文件的按钮区中显示的按钮如图(6)。   在[Navigation Pane]导航嵌窗设置里选中显示导航嵌窗(与上面不一样),如图(7)。   其他选项卡中我们使用默认值(后面在介绍)。设置好后,按编译按钮,生成的 chm 文件如图(8)所示。因为我们没有生成目录表文件和索引文件,所以在 chm 中导航窗口不会显示出来。   上面制作的 chm 文件比较简单,但有时也很实用。其页面跳转必须借助 HTML 内部的超级链接和功能按钮,对于比较简单的几个 HTML 文件也已经足够了。如果 HTML 比较复杂,也可以使用分帧处理,同样会作出很不错的 chm 文件,就像我们进入一些有分帧页面的网站时的操作方式一样。如图(9)。Top 4 楼rivershan(阿门)回复于 2002-07-31 21:36:25 得分 0 四、制作较复杂的chm文件   在 windows98 中我们常见的 chm 文件多数具有目录及索引,有的还有搜索和书签,这在使用 chm 文件的过程中会比较方便。下面我们就来制作带目录、索引、搜索、书签的 chm 文件。在这里我还将介绍一些常用的选项功能的解释。   此类 chm 文件一般包含有多个 HTML 文件。与前面一样,你需要先把网页文件做好,放到硬盘一个文件夹中,如 test3。进入 HHW 后选新建项目,并指定新建项目文件的位置和文件名(如test3),在已经存在的文件中选中目录中所有用到的HTML文件后,进入 HHW 主界面。   1、目录文件的创建   按[Contents]选项卡,选择[Create a new contents file]创建新的目录文件,并命名它为 contents.hhc。然后进入目录表编辑窗口,如图(10)。   在目录编辑窗口左侧,从上到下排列有11个按钮,前5个分别是:目录表属性设置、插入标题、插入页面、编辑所选标题或页面属性、删除标题或页面,下面4个箭头用来调整所选标题或页面的位置及从属关系,最后两个分别是显示 HTML 文件源码和保存文件。   插入一个标题:按[Insert a heading]按钮,弹出[Table of Contents Entry]对话框,如图(11).   在[Entry title]中输入标题内容,如“简介”。按[Add],在弹出的[Path or URL]对话框中选择Title为“简介”对应的 HTML 文件,如图(12),按返回后一个标题就添加完成了。这里你也可以按图(12)下面的[Browse...]指定前面没有选择加入的HTML 文件,或者直接在[File or URL:]中输入。   在标题“简介”下面再添加一个标题如“准备”:按[Insert a heading]按钮,会弹出一个询问是否在所选标题上面插入标题的对话框,我们按“否”,在[Entry title]输入页面标题“准备”,并按[Add]指定对应的 HTML 文件,返回后就又加了一个标题。   在标题“准备”下面插入一个页面(或者是子标题)如“下载”:按[Insert a page]按钮,在[Entry title]输入“下载”,并按[Add]指定对应的 HTML 文件,返回。   同样方法我们可以加入许多标题、子标题、页面,并可以利用那4个箭头按钮来调整标题或页面的位置及从属关系。HHW 最多支持 9 个级别深度。   修改标题及改变标题图标的方法:选中标题,按[Edit selection]按钮,可以对其重新指定所关联的 HTML 文件,在[Advanced]中通过下面的[Image index]改变标题的图标。如图(13)。   设置目录属性:按[Contents properties]按钮以后我们可以改变目录表显示样式等,使用默认设置就行。   所有标题创建完成后,按左下角的[Save File]按钮,一个目录表文件就创建完成了。如图(14)。   2、索引文件的创建   与目录文件的创建非常类似,只是索引文件中需要指定关键词与 HTML 文件的关联关系。请参考目录文件的创建部分,不再赘述。   3、项目文件的设置   按[Project]选项卡,进入项目编辑窗口(即默认的HHW介面)。其左边排列有7个按钮,分别是:项目属性设置、增加或删除 HTML 文件、增加或改变窗口属性定义、API信息、显示 HTML 源码、保存文件、保存文件并编译。   我们按[Change project options]按钮对项目进行设置:通常需要作的是,在[General]选项卡的[Default file]中指定封面页,也就是打开 chm 文件时默认显示的 HTML 文件。封面页可以是目录表中的某个标题所对应的 HTML 文件,也可以是在目录表中不存在的专门用来作封面的 HTML 文件。如图(15)。   如果想在 chm 文件中具备全文搜索功能,还需要在[Compiler]选项卡中选中[Compile full-text search information],如图(16)。   其他内容一般可以不去理会。   4、窗口显示风格的设置   按第三个按钮[Add/Modify windows defunitions]设置窗口属性:这里的设置将决定 chm 文件的显示风格。在弹出的对话框中我们给窗口风格随便指定一个名字(如12),按 OK 就进入了[Windows Types]对话框。常用的几个设置项为:   (1)General    [Title bar text]中输入你欲在 chm 文件的标题栏显示的文字,如“轻松制作 chm 文件”。参考图(3)。   (2)Buttons    选择欲在 chm 中出现的按钮。参考图(6)。   (3)Position    [Save user defined windows position after first use]如果选中,则系统会保存 chm 使用者最后一次退出 chm 文件时窗口的位置、大小等,下次再打开 chm 时,系统会恢复这些属性。如果不选中,则每次都以你或默认的窗口大小、位置打开 chm 文件。    Left和Top是指定打开chm时,窗口左上角的位置,Width和Height则指定窗口的宽和高。如图(17)。   (4)Files    如果选择了显示Home、Jump按钮,就在这里输入对应的 URL 超链接地址,比如你的个人主页地址。   (5)Navigation Pane    [Windows with navigation pane,topic pane,andbutton]如果不选中,则chm窗口将没有导航嵌窗和按钮。    [Navigation pane width]中指定导航嵌窗的宽度。    [Open with navigation pane closed]如果选中,在打开chm文件时导航嵌窗默认为关闭状态。    [Auto sync]如果选中,chm 中的目录标题与 HTML 文件内容将自动保持同步。    [Automatically show/hide navigation pane]如果选中,在 chm 为活动(当前)窗口时,导航嵌窗显示,当不是活动窗口时,导航嵌窗自动隐藏。    [Default tab]中指定导航嵌窗中默认的显示项。这里可以是目录、索引、搜索、书签。    [Search tab]如果选中,在chm中将具备全文搜索功能,而[Advanced]可以让 chm 具有高级搜索的功能(使用and,or,not,near)。    [Favorites tab]如果选中,chm文件就会具有书签功能。如图(18)。   另外两个选项卡可以不用管它,使用HHW的默认设置就行。   5、编译成chm文件   经过上面的设置,我们就可以编译了。按工具栏中的编译按钮,或者直接按项目窗口左下方的[Save all file and Compile]按钮,几秒钟以后 chm 文件就被编译完成。然后用鼠标双击此 chm 文件就可以看到你的作品了,如果发现问题,还可以返回 HHW 里进行修改调整。参考图(1)。 HTML Help Workshop   微软的HTML Help Workshop 制作CHM文件的工具。   我们可以使用微软的HTMLHelpWorkshop(以下简称HHW)或者“国华软件工作室”的eTextWizard(电子文档处理器,以下简称EW)。HHW在VB、VC等开发工具的CD中都有,也可以到微软的站点去下载最新版本,华军软件园(http://www.newhua.com)还有汉化的版本。EW是国人开发的软件,使用上要方便一些,下载地址为http://chmbook.363.net,在此我们以HHW为例。参考下载资料http://hi.baidu.com/e000/blog/item/51a143a96c65fafc1f17a24d.html   假设我们制作好的主页放在C:est目录中,其中有一个index.html,通过它可以链接到所有其他的文件。   1.打开HTML Help Workshop,单击“File→New”菜单(或者单击工具栏第一个按钮),出现“New”对话框,选择其中的“Project”后,按“OK”,创建一个工程。   2.这一步的对话框提供了从*.hlp到*.chm文件的转换,在此我们不需要,直接按“下一步”。   3.这一步的对话框要求指定工程的位置。单击“Browse”,进入C:est目录,并在文件名中键入“test”,这时文本框中应出现“C:est est.hlp”,然后按“下一步”。   4.这一步要求选择你已为工程创建的文件类型,在此我们选择第三个“HTML files(.htm)”。   5.现在需要添加我们制作好的HTML文件,按“Add”,选择“C:est index.html”,将它添加到列表框。说明一下,只要被index.html文件直接或间接链接到的文件,都会包含进去,因此不是将所有的文件添加进去。然后单击“完成”即可。   6.单击“File→Compile…”(或工具栏第三个按钮),出现“Create a compiled file”对话框,直接单击“Compile”。   7.测试   在资源管理器中双击生成的C:estest.chm,在页面单击右键,在菜单中选择“属性”,在“属性”对话框中复制其中的“地址”(应该为mk:@MSITStore:C:est est.chm::/index.html)。将上面的地址粘贴到浏览器的地址栏中,如果正确,按回车可以在浏览器中看到正确的页面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yongwuzhijing800

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值