Doxygen設定ファイル

Doxygen設定ファイル例(現在の設定)です。
Doxyfile

Graphvizを使ってみる

http://www.graphviz.org/

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# × Doxygen [2]

C#では標準のXMLドキュメントを書いておけばDoxygenの方でうまく認識してくれるようです。VC#のエディタならクラスやメソッドの前で「///」と打てばテンプレートを作ってくれるので殆ど覚えることはないです。
Microsoftの推奨タグ

C# × Doxygen [1]

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つのプロジェクトのビルドイベントに記述すれば良い。

ListViewのダブルバッファ

.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

ログイン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

TOP

INFORMATION

未来の自分のためのメモ
管理者:rei