2007 年 8 月 23 日 19 時 54 分

プラグイン開発用ライブラリを作る


このアーカイブは同期化されません。 mixi の日記が更新されても、このアーカイブには反映されません。


最初に作るのは、プラグイン開発用のライブラリだ。
これは、結合ルールを明確にするために参照される。

ホストの呼び出し手順をインタフェースという形で定め、
それをプラグインが実装することで結合する。

インタフェースは C# を使って書くことにしよう。
名前は………単純に ISaver とでもするか。

========== ISaver.cs ==========

using System;
using System.Drawing;
using System.Windows.Forms;

namespace Loafer.ScreenSaver {

    public interface ISaver  {

        void Configure(IWin32Window owner);

        void Create(IWin32Window window,
                int width, int height);
        void Destroy();
        void Paint(Graphics g, Rectangle bounds);

    }

}

========== end of ISaver.cs ==========

Configure は設定画面を出すためのメソッド。
これは、設定モードの際に単独で呼ばれる。

Create と Destroy と Paint はセットで、
プレビュー/実行の両方のモードで呼ばれる。

最初に Create でウィンドウハンドルとサイズが渡され、
描画が必要な時に Paint が必要なだけ呼ばれ、
終了時に Destroy が呼ばれるという決まりとしよう。

では、これをアセンブリにビルドする。
C# のコンパイラは、csc.exe である。

$ csc /w:4 /t:library /out:Loafer.ScreenSaver.dll ^
        /r:System.dll /r:System.Drawing.dll ^
        /r:System.Windows.Forms.dll ^
        ISaver.cs

C# の場合、中間ファイルなどは存在しないので、
コマンド一発で作成が終わる。

/w スイッチで警告レベルを指定し、
/t スイッチでアセンブリの種類を示す。
クラスライブラリ形式の場合は library となる。

/out スイッチで出力ファイル名を指定し、
/r スイッチで参照するライブラリを列挙する。
後はソースファイル名を並べるだけだ。

これで、アセンブリ「Loafer.ScreenSaver.dll」ができた。

実は、csc.exe は .NET Framework に含まれている。
SDK ではなく、.NET Framework にである。
なので、Windows Update からインストールするだけで、
C# での開発ができるということになる。

IDE の持つ機能を必要としないような小さいものなら、
Visual Studio などを入れる必要もなく、
コマンドだけでサクッと作れるのである。



Copyright (c) 1994-2007 Project Loafer. All rights reserved.