Table of Contents
注意点
- Doxygen 1.5.2 では、UTF-8(BOM付き)でソースを書けば、日本語のコメントが文字化けしない。
- *.rc, resource.h は UTF-16LE で書く。
コメントの書き方(C/C++)
/**
@file [ファイル名]
[ファイル全体に対する短い説明]
[ファイル全体に対する詳細な説明]
*/
/**
func1の機能の簡潔な説明。
2行目以降は詳細な説明。改行したい時は<br>を書く。
@param ArgIn1 [in] 入力用引数1の説明。
@param ArgIn2 [in] 入力用引数2の説明。
@param ArgOut [out] 出力用引数の説明。
@param ArgInOut [in,out] 入出力用引数の説明。
@retval 0 戻り値が0になる場合の説明。
@retval >0 戻り値が正になる場合の説明。
@retval <0 戻り値が負になる場合の説明。
*/
int func1( type ArgIn1, type ArgIn2, type ArgOut, type ArgInOut );
/**
func2の機能の説明。
@param[in] ArgIn 入力用引数の説明。
@param[out] ArgOut 出力用引数の説明。
@retval true 戻り値が true になる場合の説明。
@retval false 戻り値が false になる場合の説明。
*/
bool func2( type ArgIn, type ArgOut );
/**
func3の機能の説明。
@return 戻り値の説明。
*/
int func3(
type ArgIn, ///< [in] 入力用引数の説明。
type ArgOut ///< [out] 出力用引数の説明。
);
/**
func4の機能の説明。
@attention 注意。この関数を呼び出す前にXXXを初期化しておくこと。
@return 戻り値の説明。
*/
int func4(
type ArgIn1 ///< [in] 1行だけの場合。
type[] ArgIn2, /**< [in] 複数行の場合。
- ハイフンで箇条書き。インデントでネストする。
- [0]: First
- [1]: Second
- [2]: Third */
type ArgOut ///< [out] 出力用引数の説明。
);
コメントの書き方(C#)
using System;
/**
* @mainpage C#の継承のテスト
* <p>ネタ元<br>
* http://ufcpp.net/study/csharp/oo_inherit.html </p>
*/
/// <summary>
/// C#の継承のテスト用プログラム
/// </summary>
namespace TestInherit
{
/// <summary>
/// 人間
/// </summary>
/// <remarks>
/// 名前と年齢の2つの情報を持っています。
/// </remarks>
class Person
{
/// <summary>
/// 名前
/// </summary>
public string Name { get; set; }
/// <summary>
/// 年齢
/// </summary>
public int Age { get; set; }
/// <summary>
/// コンストラクタ
/// </summary>
/// <param name="name">名前</param>
/// <param name="age">年齢</param>
public Person(string name, int age)
{
Name = name;
Age = age;
}
/// <summary>
/// 文字列化
/// </summary>
/// <returns>名前と年齢を表す文字列</returns>
public new string ToString()
{
return "Name: " + Name + "\n" + "Age: " + Age + "\n";
}
}
/// <summary>
/// 学生
/// </summary>
/// <remarks>
/// 人間の情報に加えて学籍番号の情報を持っています。
/// </remarks>
class Student : Person
{
/// <summary>
/// 学籍番号
/// </summary>
public int Id { get; set; }
/// <summary>
/// コンストラクタ
/// </summary>
/// <param name="name">名前</param>
/// <param name="age">年齢</param>
/// <param name="id">学籍番号</param>
public Student(string name, int age, int id) : base(name, age)
{
Id = id;
}
/// <summary>
/// 文字列化
/// </summary>
/// <returns>名前と年齢と学籍番号を表す文字列</returns>
public new string ToString()
{
return base.ToString() + "ID: " + Id + "\n";
}
/// <summary>
/// 動作テスト
/// </summary>
/// <param name="args">コマンドライン引数</param>
static void Main(string[] args)
{
Student Tanaka = new Student("田中", 19, 1000);
Console.WriteLine(Tanaka.ToString());
}
}
}
設定
- カレントフォルダに html フォルダを作成する。
OUTPUT_DIRECTORY = .
- 取り込まないディレクトリを指定する。
EXCLUDE_PATTERNS = "*/Service References/*" \ "*/Web References/*" \ "*/Properties/*" \ "*/bin/*" \ "*/obj/*"
- private メソッド/メンバーを出力する
EXTRACT_PRIVATE = YES
- static メソッド/メンバーを出力する
EXTRACT_STATIC = YES
- internal メソッド/メンバーを出力する
EXTRACT_PACKAGE = YES
- インクルード依存関係図のグラフを描画する。
GraphVizにパスが通っていること。HAVE_DOT = YES DOT_PATH = ""
Visual Studio 設定
- Doxygen にパスが通っていること。
随時実行
- 「ツール - 外部ツール」に追加する。 | 項目 | 値 | | --- | --- | | タイトル | Doxygen(&D) | | コマンド | doxygen.exe | | 引数 | Doxyfile | | 初期ディレクトリ | $(SolutionDir) | | 出力ウィンドウを使用 | チェックする | | 起動時に引数を入力 | チェックしない | | Unicodeで出力を処理する | チェックしない |
ビルド時に自動実行
- プロジェクトのプロパティを開き、「ビルドイベント - ビルド後イベント」で設定する。
| 項目 | 値 |
| --- | --- |
| コマンドライン | if "$(ConfigurationName)" == "Release" (
cd /d "$(SolutionDir)"
doxygen.exe Doxyfile
) | | 説明 | Doxygen | | ビルドで使用 | はい |
Link
- Doxygen (日)
- Doxygen (英)
- Graphviz
- CPAN:Doxygen-Filter-Perl / PerlDoxygen
- Perl Doxygen Filter / Download
- Documenting JavaScript with Doxygen
- DoxyComment
- Useful enhancements for Visual Studio .NET
- CX's MEMO (Doxygen)
- Doxygen用コメントの書き方
- 電信八号 / 電八開発倶楽部 / Doxygenコメント
- sikios / C# × Doxygen 1(http://sikios.com/wordpress/20091115/csharp_x_doxygen_1/), 2(http://sikios.com/wordpress/20091115/csharp_x_doxygen_/)
- Visual C# .NETでAPIリファレンスを作る
- XML ドキュメント コメント / ドキュメント コメント用の推奨タグ
- C# のコーディング規則 (C# プログラミング ガイド)
- 安全なコーディングのガイドライン
- クラス ライブラリ開発のデザイン ガイドライン
- # cat /var/log/stereocat | tail -n3 / Doxygen with doxygenfilter for perl
- GNU コーディング規約
- CERT C Secure Coding Standards 日本語版
- google-styleguide Style guides for Google-originated open-source projects
- jsdoc3
- 間違ったコードは間違って見えるようにする @ The Joel on Software Translation Project
- 【コメント】doxygen【コンソメ】 @ プログラム技術