#contents
----
* 注意点 [#Attention]
- Doxygen 1.5.2 では、UTF-8(BOM付き)でソースを書けば、日本語のコメントが文字化けしない。
- *.rc, resource.h は UTF-16LE で書く。
-- RC.EXE は UTF-8 に対応していない。
-- [[internationalization - Localized rc file will not compile - Stack Overflow:http://stackoverflow.com/questions/4675186/localized-rc-file-will-not-compile]]
-- [[UTF-8 Handling in source code is inconsistent in resource file, IDE Editor, and compiler. - Microsoft Connect:http://connect.microsoft.com/VisualStudio/feedback/details/539845/]]

* コメントの書き方(C/C++) [#CommentRule_C]
#code(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#) [#CommentRule_CSharp]
#code(csharp){{
 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());
         }
     }
 }
}}

* 設定 [#Settings]
- カレントフォルダに html フォルダを作成する。
 OUTPUT_DIRECTORY       = .
- 取り込まないディレクトリを指定する。
 EXCLUDE_PATTERNS       = "*/Service References/*" \
                          "*/Web References/*" \
                          "*/Properties/*" \
                          "*/bin/*" \
                          "*/obj/*"
- private メソッド/メンバーを出力する
 EXTRACT_PRIVATE        = YES
- static メソッド/メンバーを出力する
 EXTRACT_STATIC         = YES
- internal メソッド/メンバーを出力する
 EXTRACT_PACKAGE        = YES
- インクルード依存関係図のグラフを描画する。&br;
GraphVizにパスが通っていること。
 HAVE_DOT               = YES
 DOT_PATH               = ""

* Visual Studio 設定 [#VisualStudio]
- Doxygen にパスが通っていること。

** 随時実行 [#VisualStudio_Occasionally]
- 「ツール - 外部ツール」に追加する。
|~タイトル|Doxygen(&D)|
|~コマンド|doxygen.exe|
|~引数|Doxyfile|
|~初期ディレクトリ|$(SolutionDir)|
|~出力ウィンドウを使用|チェックする|
|~起動時に引数を入力|チェックしない|
|~Unicodeで出力を処理する|チェックしない|

** ビルド時に自動実行 [#VisualStudio_BuildEvent]
- プロジェクトのプロパティを開き、「ビルドイベント - ビルド後イベント」で設定する。
|~コマンドライン|if "$(ConfigurationName)" == "Release" (&br;&nbsp; cd /d "$(SolutionDir)"&br;&nbsp; doxygen.exe Doxyfile&br;)|
|~説明|Doxygen|
|~ビルドで使用|はい|

* Link [#Link]
- [[Doxygen (日):http://www.doxygen.jp/]]
-- [[コマンド一覧:http://www.doxygen.jp/commands.html]]
-- [[設定:http://www.doxygen.jp/config.html]]
- [[Doxygen (英):http://www.doxygen.org/]]
-- [[コマンド一覧:http://www.doxygen.org/commands.html]]
-- [[設定:http://www.doxygen.org/config.html]]
-- [[Helper tools & scripts:http://www.doxygen.org/helpers.html]]
- [[Graphviz:http://www.graphviz.org/]]
- [[CPAN:Doxygen-Filter-Perl]] / [[PerlDoxygen:http://sourceforge.net/projects/perldoxygen/]]
- [[Perl Doxygen Filter:http://www.bigsister.ch/doxygenfilter/]] / [[Download:http://www.bigsister.ch/doxygenfilter/stable.html]]
- [[Documenting JavaScript with Doxygen:http://coherent-labs.com/blog/documenting-javascript-with-doxygen/]]
--[[Documenting JavaScript with Doxygen · GitHub:https://gist.github.com/dimitarcl/3767879]]
- [[DoxyComment:http://doxycomment.sourceforge.net/]]
- [[Documenting JavaScript with Doxygen:http://coherent-labs.com/blog/documenting-javascript-with-doxygen/]] / [[Documenting JavaScript with Doxygen · GitHub:https://gist.github.com/dimitarcl/3767879]]
- [[Useful enhancements for Visual Studio .NET:http://www.codeproject.com/macro/KingsTools.asp]]
- [[CX's MEMO:http://cx20.main.jp/pukiwiki/pukiwiki.php]] ([[Doxygen:http://cx20.main.jp/pukiwiki/pukiwiki.php?Software%2FDoxygen]])
- [[Doxygen用コメントの書き方:http://members.at.infoseek.co.jp/sakura_editor/comment-rule.html]]
- [[電信八号:http://www.denshin8.jp/]] / [[電八開発倶楽部:http://www.denshin8.jp/den8dev/]] / [[Doxygenコメント:http://www.denshin8.jp/den8dev/doxygen.html]]
- [[sikios:http://sikios.com/wordpress/]] / 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リファレンスを作る:http://www.atmarkit.co.jp/fdotnet/teamdev/teamdev02/teamdev02_01.html]]
- [[XML ドキュメント コメント:http://msdn.microsoft.com/ja-jp/library/b2s063f7.aspx]] / [[ドキュメント コメント用の推奨タグ:http://msdn.microsoft.com/ja-jp/library/5ast78ax.aspx]]
- [[C# のコーディング規則 (C# プログラミング ガイド):http://msdn.microsoft.com/ja-jp/library/ff926074.aspx]]
- [[安全なコーディングのガイドライン:http://msdn.microsoft.com/ja-jp/library/8a3x2b7f.aspx]]
- [[クラス ライブラリ開発のデザイン ガイドライン:http://msdn.microsoft.com/ja-jp/library/ms229042.aspx]]
- [[# cat /var/log/stereocat | tail -n3:http://d.hatena.ne.jp/stereocat/]] / [[Doxygen with doxygenfilter for perl:http://d.hatena.ne.jp/stereocat/20081109/]]
- [[GNU コーディング規約:http://www.sra.co.jp/wingnut/standards-j_toc.html]]
- [[CERT C Secure Coding Standards 日本語版:https://www.jpcert.or.jp/sc-rules/]]
- [[google-styleguide:https://code.google.com/p/google-styleguide/]] Style guides for Google-originated open-source projects
-- [[Google C++ Style Guide:http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml]]
-- [[Google JavaScript Style Guide:http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml]]
--- [[Google JavaScript Style Guide 和訳:http://cou929.nu/data/google_javascript_style_guide/]] @ [[Kosei Moriyama (cou929):http://cou929.nu/]]
-- [[Google Python Style Guide:http://google-styleguide.googlecode.com/svn/trunk/pyguide.html]]
-- [[Google HTML/CSS Style Guide:http://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml]]
- [[jsdoc3:https://github.com/jsdoc3]]
- [[間違ったコードは間違って見えるようにする:http://local.joelonsoftware.com/wiki/%E9%96%93%E9%81%95%E3%81%A3%E3%81%9F%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AF%E9%96%93%E9%81%95%E3%81%A3%E3%81%A6%E8%A6%8B%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B]] @ [[The Joel on Software Translation Project:http://local.joelonsoftware.com/wiki/Japanese]]
//- [[【コメント】doxygen【コンソメ】:http://pc12.2ch.net/test/read.cgi/tech/1212144627/l50]] @ [[プログラム技術:http://pc12.2ch.net/tech/]]
//- [[【コメント】doxygen【コンソメ】:http://hibari.2ch.net/test/read.cgi/tech/1212144627/l50]] @ [[プログラム技術:http://hibari.2ch.net/tech/]]
- [[【コメント】doxygen【コンソメ】:http://toro.2ch.net/test/read.cgi/tech/1212144627/l50]] @ [[プログラム技術:http://toro.2ch.net/tech/]]

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS