※ C# の場合、ルート名前空間では無く、ソースコード内の namespace で指定します 新規プロジェクトコード自体は特別な事はしません。以下のようなコードを作成します
Imports System.Windows.Forms Public Class Class1 Public Sub Hello() MessageBox.Show("こんにちは") End Sub Public Function PcName() As String PcName = My.Computer.Name End Function End Class
ここでは、MessageBox.Show を使う為に、System.Windows.Forms を Imports していますが、COM へ公開するのに必須ではありません。また、System.Windows.Forms を Imports するには、参照設定を行う必要があります。COM へ公開する為の特別な設定(1) まず、Release に設定して下さい。
COM へ公開する為の特別な設定(2) COM としてビルドする為の設定は、プロジェクトのプロパティから、アセンブリ情報ボタンをクリックして開いたダイアログで、チェックボックスを ON にするだけです。
COM へ公開する為の特別な設定(3) 署名タブから、アセンブリの署名を行うようにチェックボックスを ON にして、『厳密な名前のキーファイル』を作成します。
▼ ファイル名は任意
COM へ公開する為の特別な設定(4) ルート名前空間を決定します( CreateObject で使用するピリオドの前にある名前 )
ビルドしてから COM として登録する 以下のように登録用と削除用のファイルを配置します。
ショートカットは、『管理者権限で実行』できるように設定します
![]()
▼ build.bat の中身です
cd %~p0 C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm MyComClass.dll /tlb:MyComClass.tlb /codebase pause
cd %~p0 C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm MyComClass.dll /unregister pause
▼ 管理者権限での実行可能なショートカットより実行▼ レジストリエディタで登録された事を確認
実行用テストコード
Set obj = Wscript.CreateObject("winofsql.Class1") Call obj.Hello() Wscript.Echo obj.PcName()
|
【VB.NET : テクニカルの最新記事】
- VB.net(C#) : Picasa より指定したアルバム内の画像の URL 一覧を取得する
- VB.net : Picasa にアクセスする為に、Google Data API にログインしてトークンを取得する
- VB.net : Win32API 呼び出し : GetWindowsDirectory
- VB.net : 画像の上にテキストを半透明で出力する
- VB.net と C# における KeyPress イベントの受け取り方
- VB.net : フォーカス イベントの発生順序と注意事項
- VB.net クリップボードの処理 ( C# は注意 )
- VB.net : 自分自身(というか元々プロテクトメソッド)を呼び出す遅延処理用プライベートタイマークラス