Doxygen設定ファイル
Doxygen設定ファイル例(現在の設定)です。
Doxyfile
1.ダウンロード&インストール
http://www.graphviz.org/から。
「C:\Program Files (x86)\doxygen」にインストールしたみた。
2.Doxygenの設定
doxywizardを使う場合はExpertタブ内でDotに関する項目を変更するだけです。
最低限「HAVE_DOT」にチェックを入れ、「DOT_PATH」にdot.exeの存在するディレクトリを指定すれば動作します。
3.備考
Doxygen単体での使用と違いgraphvizは画像を生成するので多少時間がかかります。
GRAPHICAL_HIERARCHYのチェックが入っていなければ2回目以降は早くなると思います。
C#では標準のXMLドキュメントを書いておけばDoxygenの方でうまく認識してくれるようです。VC#のエディタならクラスやメソッドの前で「///」と打てばテンプレートを作ってくれるので殆ど覚えることはないです。
Microsoftの推奨タグ
0.はじめに
どうやらC#でもDoxygenが使えるようなので試しに使ってみる。
ここで書いている内容はほんの一例です。
今回はソリューションディレクトリに設定ファイルを置き、その下位の「docs」にドキュメントを作成します。
1.ダウンロード
http://www.doxygen.jp/からダウンロード。
(doxygen-1.6.1-setup.exe)
2.インストール
適当なディレクトリにインストール。自分の場合は「C:\Program Files (x86)\doxygen」。
3.設定ファイルの作成
doxywizard.exeを実行。メニュー「File」→「Save as」でデフォルトの設定ファイルを作成する。ファイル名はデフォルトのDoxyfile。
4.基本設定
Expertタブより。基本的な項目のみ記載。
DOXYFILE_ENCODING : UTF-8
PROJECT_NAME : プロジェクト名 ※今回はソリューション名
OUTPUT_DIRECTORY : ドキュメントを作成するフォルダ
OPTIMIZE_OUTPUT_JAVA : チェック ※C#はJAVAと同じ扱いらしい
INPUT : 解析するディレクトリ ※今回はソリューションディレクトリ
INPUT_ENCODING : UTF-8 ※実際のソースのエンコード
FILE_PATTERNS : 「*.cs」を追加
RECURSIVE : チェック
他は試行錯誤で。だいたい感覚で分かると思います。
5.GUIフロントエンドから実行してみる
Runタブより、「Run doxygen」をクリックするだけ。
「Show HTML output」でそれっぽいページが表示されればとりあえず成功。
6.Visual Studioから実行してみる
メニューの「ツール」→「外部ツール」→「追加」
タイトル : Doxygen(&Y)
コマンド : 2.でインストールした先にあるdoxygen.exe
引数 : Doxyfile
初期ディレクトリ : $(SolutionDir)
「出力ウィンドウを使用」にチェック
以上でメニューから実行できるようになります。
7.ビルド時に実行されるようにする
任意のプロジェクトの「プロパティ」→「ビルドイベント」→「ビルド後に実行するコマンドライン」に以下のように記述する。
cd /d “$(SolutionDir)
“C:\Program Files (x86)\doxygen\bin\doxygen.exe” Doxyfile
「ビルドが成功したとき」にしておけばソリューションのビルド時に一度だけDoxygenが実行される。
今回はソリューション全体を対象としているので、1つのプロジェクトのビルドイベントに記述すれば良い。
.NetのListViewを使っていてまず気づくのが、項目の追加時やスクロール時に妙にちらつくこと。どうやらデフォルトでダブルバッファがOffになっているらしい。
DoubleBufferdプロパティをtrueに設定すれば良い・・・ということは予想できるが、このプロパティはprotectedになっている。何故publicじゃないんだろう?
解決策は以下のコード。SetListViewDoubleBuffered()にリストビューオブジェクトを渡せばOK。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Windows.Forms; namespace Siki { [ComVisibleAttribute(false)] public class Styles { private const int LVM_FIRST = 0x1000; private const int LVM_SETEXTENDEDLISTVIEWSTYLE = (LVM_FIRST + 54); private const int LVM_GETEXTENDEDLISTVIEWSTYLE = (LVM_FIRST + 55); private const int LVS_EX_DOUBLEBUFFER = 0x00010000; [DllImport("user32.dll")] public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, IntPtr lParam); public static void SetListViewDoubleBuffered(ListView listview) { int styles = (int)SendMessage(listview.Handle, (int)LVM_GETEXTENDEDLISTVIEWSTYLE, 0, (IntPtr)0); styles |= LVS_EX_DOUBLEBUFFER; SendMessage(listview.Handle, (int)LVM_SETEXTENDEDLISTVIEWSTYLE, 0, (IntPtr)styles); } } } |
SendMessage()でウィンドウスタイルを直接変更してます。
64bitアプリケーションでも問題ないようです。
ログインAPI
https://secure.nicovideo.jp/secure/login?site=nicolive_antenna
認証API
http://live.nicovideo.jp/api/getalertstatus
匿名API
http://live.nicovideo.jp/api/getalertinfo
番組情報取得API
http://live.nicovideo.jp/api/getstreaminfo/lv*******
詳細API
http://watch.live.nicovideo.jp/api/getplayerstatus
来場者数取得API
http://watch.live.nicovideo.jp/api/heartbeat
市場取得API
http://live.nicovideo.jp/ichiba/showMai