在每一个代码项中均可以有两类描述, 这两类描述将在文档中格式化在一块儿: 一种就是brief描述, 另外一种就是detailed。 两种都是可选的,但不能同时没有。html
顾名思义, 简述(brief)就是在一行内简述地描述。而详细描述(detailed description)则提供更长, 更详细的文档。java
Doxygen支持c风格注释、c++风格注释以及javaDoc风格注释等,下面将分别予以介绍。c++
若须要经过Doxygen生成漂亮的文档,通常有以下几个地方须要使用Doxygen支持的风格进行注释:
1) 文件头(包括.h和.cpp)
主要用于声明版权,描述本文件实现的功能,以及文件版本信息等
2) 类的定义
主要用于描述该类的功能,同时也能够包含使用方法或者注意事项的简要描述
3) 类的成员变量定义
在类的成员变量上方,对该成员变量进行简要地描述
4) 类的成员函数定义
在类定义的成员函数上方,对该成员函数功能进行简要描述
5) 函数的实如今函数的实现代码处,详细描述函数的功能、参数的含义、返回值的含义、使用本函数须要注意的问题、本函数使用其余类或函数的说明等微信
能够在注释中加一些Doxygen支持的指令,主要做用是控制输出文档的排版格式,使用这些指令时须要在前面加上“\”或者“@”(JavaDoc风格)符号,告诉Doxygen这些是一些特殊的指令,经过加入这些指令以及配备相应的文字,能够生成更加丰富的文档,下面对比较经常使用的指令作一下简单介绍。编辑器
@file函数 |
档案的批注说明。学习 |
@author测试 |
做者的信息spa |
@brief.net |
用于class 或function的简易说明 eg:
|
@param |
主要用于函数说明中,后面接参数的名字,而后再接关于该参数的说明 |
@return |
描述该函数的返回值状况 eg: @return 本函数返回执行结果,若成功则返回TRUE,不然返回FLASE |
@retval |
描述返回值类型 eg:
|
@note |
注解 |
@attention |
注意 |
@warning |
警告信息 |
@enum |
引用了某个枚举,Doxygen会在该枚举处产生一个连接 eg: @enum CTest::MyEnum |
@var |
引用了某个变量,Doxygen会在该枚举处产生一个连接 eg: @var CTest::m_FileKey |
@class |
引用某个类, 格式:@class <name> [<header-file>] [<header-name>] eg: @class CTest "inc/class.h" |
@exception |
可能产生的异常描述 eg: @exception 本函数执行可能会产生超出范围的异常 |
JavaDoc风格的注释风格主要使用下面这种样式:即在注释块开始使用两个星号‘*‘
Doxygen支持的块(类、函数、结构体等)的注释描述分为两种:简述 和 详述
通常注释的描述由简述开始,通过特殊分隔方式后,后面紧跟详述的内容,javaDoc风格可使用的分隔方法有如下两种:
1) 使用 \brief 参数标识,空行做为简述和详述的间隔标识
2) 直接使用javaDoc风格,javaDoc风格自动以简述开头,以空行(或者小数点加空格)做为简述与详述的分割
(1)在成员变量上面加注释的格式
(2)在成员变量后面加注释的格式
C++的注释风格主要使用下面这种样式:即在注释块开始使用三个反斜杠‘/’
其余地方其实与JavaDoc的风格相似,只是C++风格不用 “*” 罢了。
C++风格的简述与详述方式与javaDoc相似。
通常注释的描述由简述开始,通过特殊分隔方式后,后面紧跟详述的内容,C++风格可使用的分隔方法有如下两种:
(1)使用 \brief 参数标识,空行做为简述和详述的间隔标识
(2) 使用以空行(或者小数点加空格)做为简述与详述的分割
以小数点加空格做为分隔以下:
1. 一个代码块(类、函数、结构等)的概述采用单行的”///”加一个空格开头的注释,并写在该代码块声明的前面;
2. 一个代码块的详述采用至少两行的”///”加一个空格开头的注释,若不足两行第二行的开头也要写出来,而且放在代码块定义的前面;若是某代码没有声明只有定义或者相反,则在定义或者声明前面写上单行的概述+一个空行+多行的详述;
3. 枚举值列表的各项、结构域的各项等采用在本行最后添加”///<”加一个空格开头的注释;
4. 对变量的定义采用在变量上面加单行”///”加一个空格开头的注释(至关因而给改变量一个概述);
5. 函数的参数用”/// @param”+一个空格开头的行描述在函数的详述里面;
6. 函数的返回值用”/// @return”+一个空格开头的行描述在函数的详述里面;
7. 函数之间的参考用”/// @see”+一个空格开头的行描述在函数的详述里面;
8. 文件头的版权以及文件描述的注释参见例代码。
(1)在成员变量上面加注释的格式
(2)在成员变量后面加注释的格式
(1)Doxygen会忽略你在注释中加入的多余的换行,若是你但愿保留两行注释之间的空行,那么,在该行加入\n
解决:在expert中的INPUT选项页的INPUT_ENCODEING中填入“GB2312”,这样基于GB的文本编辑器生成的代码就能够正常使用了。
解决:首先确保安装了graphviz for win,注意不是wingraphviz,后者是一个graphviz的com封装,可是doxygen并非基于它开发的,因此装了也没用。而后在expert的DOT_PATH中填入graphviz的安装路径。接着在wizard的diagram中选择须要生成的图形类别就能够了。
若是出现没法包含.map文件的错误,能够将工做目录设置成html,并将html中全部文件都清除再试。这个问题的缘由还不太肯定。
配置时注意expert中的HTML页:选中“GENERATE_HTMLHELP”,而后在CHM_FILE中填上想要的chm文件名。
HHC_LOCATION中输入hhc.exe文件的路径。hhc.exe能够经过安装HTML Help Workshop得到。
或者使用HTML Help Workshop来编译Doxygen生成的html文件夹中的.hhp文件,编译完成后便可在该html文件夹中找到对应的chm文件
例如:
class __declspec(dllexport) CClassName:public CObject
{
}
目前发现Doxygen没法识别出DLL中定义的类。
结束语
免费学习更多精品课程,登陆乐搏学院官网http://h.learnbo.cn/
或关注咱们的官方微博微信,还有更多惊喜哦~