一. 什么是Doxygen?
Doxygen 是一個程序的文件產生工具,可將程序中的特定批注轉換成為說明文件。通常我們在寫程序時,或多或少都會寫上批注,但是對於其它人而言,要直接探索程序里的批注,與打撈鐵達尼號同樣的辛苦。大部分有用的批注都是屬於針對函式,類別等等的說明。所以,如果能依據程序本身的結構,將批注經過處理重新整理成為一個純粹的參考手冊,對於后面利用您的程序代碼的人而言將會減少許多的負擔。不過,反過來說,整理文件的工作對於您來說,就是沉重的負擔。
Doxygen 就是在您寫批注時,稍微按照一些它所制訂的規則。接着,他就可以幫您產生出漂亮的文檔了。
因此,Doxygen 的使用可分為兩大部分。首先是特定格式的批注撰寫,第二便是利用Doxygen的工具來產生文檔。
二. 准備軟件
2.1 doxygen
下載地址:http://www.stack.nl/~dimitri/doxygen/download.html
2.2 graphviz
官網:http://www.graphviz.org/content/dot-dotexe
注:這個軟件不是必需的,如果需要使用更強大的功能比如類繼承體系圖等則需要安裝此軟件配置使用,需要安裝Java環境
下載地址:http://www.graphviz.org/Download_windows.php
2.3 Microsoft HTML Help Workshop
chm文件制作工具
三個軟件
三. C#注釋
<Summary> 對整體進行概要性描述
<summary>Description</summary>
類、屬性(不推薦)、方法等
<para> 跟在Summary之后,對方法所涉及的入口參數進行有效的解釋
<param name=username>本參數是用戶的帳號</param>
方法的入口參數;
<returns> 對方法的返回值進行解釋;
<returns>返回值零代表操作成功,-1代表操作不成功</returns>
方法的返回值;
<remarks> 對一些語句進行備注性描述
<remarks>本類需要調用另外一個User類相關方法</remarks>
類、方法、屬性等;
<see> 在生成的文檔中產生一個連接到其它描述的超鏈接;
<see cref=”[member]”/>
可以在其它注釋標識符中加入
<seealso> 與上者的區別是本標識符顯示超鏈接在一個文檔的尾部的“See Also”區域,而前者在文檔之中;
<seealso cref=”[member]”/>
不可以在其它注釋標識符中加入
<value> 對一個屬性進行概要性解釋;
<value>這是一個public屬性</value>
屬性
<code> 如果需要置入一部分源代碼段,可以使用本標識符將其標記出來
<code>
public int add(int a,b)
{
return a+b;
}
</code>
可以在其它注釋標識符中加入
<exception> 對程序中可能拋出的異常做解釋;
<exception cref=”System.Exception”>拋出的異常情況</exception>
在方法當中如果有拋出異常,如“try…catch結構”時可以使用本標識符做解釋
<permission> 對方法的訪問權限做一些解釋:
<permission cref=”System.Security.PermissionSet”>這是公共方法</permission>
方法,屬性
<c> 與<code>標識符基本相同,但本標識符僅用於單行代碼;
<c>return a+b;</c>
可以在其它標識符中插入使用;
<example> 舉例說明,通常與<code>配套使用;
<example> 以下示例說明如何調用Add方法:
<code>
class MyClass
{
public static int Main()
{
return Add(1+2);
}
}
</code>
</example>
可以在其它標識符中插入;
<paramref> 在其它地方引用一個入口參數
<paramref cref=”a”>請注意,這是一個整型參數</paramref>
四. 配置
4.1 Doxygen工作目錄
請選擇一個已存在的非中文路徑的文件夾,如下圖:
4.2 Wizard 向導
4.2.1 Project 項目
4.2.2 Mode 模式
4.2.3 Output 輸出
將With search function的鈎去掉
plain HTML,為下圖一,with navigation panel為下圖二
4.2.4 Diagrams 圖表
(Use built-in class diagram generator)將使用內置的生成功能生成每個類的類圖,只有一個類是不為生成的。
如果需要更加大的功能比如類繼承體系圖請選擇第三項(Use dot tool from the GraphViz package)需要安GraphViz。
4.3 Export 導出
4.3.1 Project 項目
OUTPUT_LANGUAGE選擇chinese TAB_SIZE是Tab的長度
4.3.2 Build 構建
默認是會生成public方法,這里也選擇EXTRACT_ALL。它保證輸出所有public方法及project方法,EXTRACT_STATIC是生成靜態方法。
4.3.3 Input 輸入
Input為輸入目錄,支持多個目錄,我們可以放入項目目錄和include目錄,下面的Exclude是忽略目錄與文件,可自行添加。
4.3.4 Index 索引
選擇ALPHABETICAL_INDEX,類中將有一個組合類型索引項。
生成的索引如下圖所示
4.3.5 HTML
如果你之前選擇了(prepare form compressed HTML(.chm))這里抽GENERATE_HTMLHELP項會是選擇狀態,它下面的CHM_FILE填寫你的CHM文檔的名字(要加上.chm)。HHC_LOCATION則選擇你的HTML Help WorkShop安裝目錄下的HHC程序,一般會在C:/Program Files (x86)/HTML Help Workshop/hhc.exe。選擇TOC_EXPAND會生成左邊的樹目錄。
4.3.6 Dot
如果你選用內置的生成功能(Use build-in class diagram generator)此時CLASS_DIAGRAMS會是選擇狀態,而HAV_DOT是未選擇狀態,如果你選擇用GraphViz的dot工具生成(Use dot tool from the GraphViz package)情況則相反,請你選擇上CLASS_DIAGRAMS。此時你需要設置下面的DOT_PATH為GraphViz的安裝目錄,否則將無法生成。
另外以下選項選擇則生成對應的圖,不選擇則不生成。
CLASS_GRAPHS 類圖
COLLABORATION_GRAPH 協作圖
GROUP_GRAPHS 組圖
UML_LOOK 是否UML外觀
INCLUDE_GRAPH include
INCLUDED BY GRAPH 被include
CALL_GRAPH 調用
CALLER_GRAPH 被調用
DIRECTORY_GRAPH 目錄圖
GRAPHICAL_HIERARCHY 繼承體系圖
五.Run 運行
配置好后中進入Run選項卡單擊 Run Doxygen 即開始生成,等待生成完畢后點擊 “Show HTML output”
六.HTML效果圖
七.CHM效果圖
分享一下我的Doxygen配置文件:http://pan.baidu.com/s/1hqh5Clm
八.提醒
提醒一下,如果是WIN8的操作系統,建議設置dot的兼容性,並以管理員身份運行,否則一直會彈出dot停止運行的警告框