開発メモ/C/Tips/他の言語から参照できるDLLの作成
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
COM相互運用というものです。~
.NETで作成したアセンブリをCOMとして利用できるという代物。~
ExcelVBAなんかからも参照できます。~
*手順 [#xbd14a26]
手順としては
+クラスライブラリのプロジェクト(orソリューション)を作成
+プロジェクトのプロパティの「ビルド」タブ内の「COM相互運...
+インターフェイスとクラスを作成する。
+ビルドする
+できたDLLを他の環境でも利用したい場合はregasmで登録
上記の手順になります。~
あと、VisualStudioは管理者権限で実行しておいてください。~
*クラスの作成について [#g83fb98d]
COM相互運用では、公開用のインターフェイスとインターフェイ...
~
まずはインターフェイスから見ていきます。
#codeprettify(lang-vb linenums:1){{
namespace comtest{
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
[Guid("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")]
[ComVisible(true)]
public interface IComTest{
}
}
}}
ソースを見てもらうとわかるように、クラスの宣言の前に、い...
|設定 |説明|h
|InterfaceType |???|
|GUID |インターフェイスを識別するGUID|
|ComVisible |参照の可否を指定|
次にクラスです。
#codeprettify(lang-vb linenums:1){{
namespace comtest{
[ClassInterface(ClassInterfaceType.None)]
[Guid("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")]
[ComVisible(true)]
[ProgId("comtest.ComTest")]
public class ComTest : IComTest{
public string TestProperty{
get;
set;
}
public void testMethod();
}
}
}}
ソースを見てもらうとわかるように、クラスの宣言の前に、い...
|設定 |説明|h
|ClassInterface|???|
|GUID |インターフェイスを識別するGUID|
|ComVisible |参照の可否を指定|
|ProgId |参照する名称の指定。無くてもOK|
こんなかんじでインターフェイスとクラスを作って、ビルドし...
終了行:
COM相互運用というものです。~
.NETで作成したアセンブリをCOMとして利用できるという代物。~
ExcelVBAなんかからも参照できます。~
*手順 [#xbd14a26]
手順としては
+クラスライブラリのプロジェクト(orソリューション)を作成
+プロジェクトのプロパティの「ビルド」タブ内の「COM相互運...
+インターフェイスとクラスを作成する。
+ビルドする
+できたDLLを他の環境でも利用したい場合はregasmで登録
上記の手順になります。~
あと、VisualStudioは管理者権限で実行しておいてください。~
*クラスの作成について [#g83fb98d]
COM相互運用では、公開用のインターフェイスとインターフェイ...
~
まずはインターフェイスから見ていきます。
#codeprettify(lang-vb linenums:1){{
namespace comtest{
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
[Guid("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")]
[ComVisible(true)]
public interface IComTest{
}
}
}}
ソースを見てもらうとわかるように、クラスの宣言の前に、い...
|設定 |説明|h
|InterfaceType |???|
|GUID |インターフェイスを識別するGUID|
|ComVisible |参照の可否を指定|
次にクラスです。
#codeprettify(lang-vb linenums:1){{
namespace comtest{
[ClassInterface(ClassInterfaceType.None)]
[Guid("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")]
[ComVisible(true)]
[ProgId("comtest.ComTest")]
public class ComTest : IComTest{
public string TestProperty{
get;
set;
}
public void testMethod();
}
}
}}
ソースを見てもらうとわかるように、クラスの宣言の前に、い...
|設定 |説明|h
|ClassInterface|???|
|GUID |インターフェイスを識別するGUID|
|ComVisible |参照の可否を指定|
|ProgId |参照する名称の指定。無くてもOK|
こんなかんじでインターフェイスとクラスを作って、ビルドし...
ページ名: