注意点

コメントの書き方(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