.Net言語(C#,VB.Net)でCOMを実装する

もしかしたら常識なのかも知れないけれど…(^^;

あまり雑誌などでも紹介されていないと思うのですが,.Net言語でも簡単に COM を実装することができます。知らなかった…

自分のために(^^)手順をメモ。なお,ここで紹介する操作は,VS2005で行ったものです。

1. プロジェクト生成ウィザードでは「クラスライブラリ」を選択。

2. クラスの実装は次のようにします。これは C# の場合ですが,VB.Netでもほとんど同じです。

(1) System.Runtime.InteropServices をインポート。
(2) インターフェースを明示的に定義。従ってインターフェースとそれを実装するクラスの2つを記述します。
(3) クラスには ClassInterfaceAttribute で ClassInterface.None を指定して,外部へ公開しないようにしておきます。

例として作成したコードはこんな感じ。

using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace ScriptLib {

public interface CsInterface {
void Message(string msg);
}

[ClassInterface(ClassInterfaceType.None)]
public class CsClass : CsInterface {
public void Message(string msg) {
MessageBox.Show(msg, "C# COM");
}
}
}

3. プロジェクトのプロパティから「アプリケーション」タブの[アセンブリ情報]を開きます。

4.「アセンブリをCOM公開可能にする」チェックボックスをONにします。ここが重要。

memo2.gif

5. プロパティ「ビルドイベント」タブの[ビルド後に実行するコマンドライン]に次のコマンドを定義します。

regasm $(TargetFileName) /tlb:$(TargetName).tlb /codebase

6. ビルドすれば出来上がり!!

ATLよりずっと簡単で,以外と使えそうです。


タグ:C# .net com
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
rank← ランキングはこちらをクリック!

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。