- PR -

.NETでActiceXDLLの作成

1
投稿者投稿内容
ニック
ベテラン
会議室デビュー日: 2004/10/20
投稿数: 60
投稿日時: 2004-11-11 11:06
はじめまして。こんにちは。

VB6.0で作成した、ActiveXDLLのソースをVB.NETのアップグレードウィザード
でアップグレードし、リビルドし、作成されたDLLをASPから呼び出すとエラー
になります。ただ単にアップグレードウィザードを使用しただけではだめなの
でしょうか?それともVB.NETでは、ASPから呼び出して使うようなActiveXDLLは
作れないのでしょうか?ちなみに現在ASPからは、CreateObjectを使用してDLL
を呼び出しているのですが、呼び出し方に問題がありますでしょうか?
宜しくお願いします。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2004-11-11 11:59
引用:

VB6.0で作成した、ActiveXDLLのソースをVB.NETのアップグレードウィザード
でアップグレードし、リビルドし、作成されたDLL


ActiveX DLLではなくアセンブリが作成されるのでは?

引用:

それともVB.NETでは、ASPから呼び出して使うようなActiveXDLLは
作れないのでしょうか?


そもそも、VB.NETでActiveXは作れない。

引用:

ちなみに現在ASPからは、CreateObjectを使用してDLL
を呼び出しているのですが、呼び出し方に問題がありますでしょうか?


はい。
アセンブリを参照して、後はクラスとして扱えるはずです。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2004-11-11 12:43
引用:

そもそも、VB.NETでActiveXは作れない。



非常に厳密に言えばそうですが、COM 連携で、クラスライブラリを ActiveX DLL として扱えますよね?

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
ニック
ベテラン
会議室デビュー日: 2004/10/20
投稿数: 60
投稿日時: 2004-11-11 14:14
渋木様、todo様
ご回答ありがとうございます。

引用:


アセンブリを参照して、後はクラスとして扱えるはずです。




VB.NETでビルドされたDLLは、アセンブリと呼ぶのですね・・・
ASPからアセンブリを呼び出す方法を調べます。

引用:


非常に厳密に言えばそうですが、COM 連携で、クラスライブラリを ActiveX DLL として扱えますよね?





上記の方法でDLLを作成すれば、server.CreateObjectにてASPから
呼び出せるのでしょうか?

todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2004-11-11 14:32
ASP.NETではなくASPの話だったのですね。

アセンブリをCCWでラッピングしてASPで利用できるそうです。


COM 呼び出し可能ラッパー (CCW)


参考
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=16487&forum=7&2


追記

ASPでタイプライブラリを参照できないので、無理?
VC++.NETでラッパーCOMを作るしかない?

[ メッセージ編集済み 編集者: todo 編集日時 2004-11-11 14:41 ]
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2004-11-11 14:55
[quote]
ASPでタイプライブラリを参照できないので、無理?
[quote]

構文は忘れましたが、タイプライブラリを参照することはできます。

ただし、Windows Script な言語は変数がすべてVARAIANT なので、主に定数値を取り込むために使用します。

COM 連携ではマネージクラスをディスパッチオブジェクトとして公開できるので、特に不都合はありません。

引用:

VC++.NETでラッパーCOMを作るしかない?



そんな難しいことをする必要は無いです。

C# でも、VB.NET でも構わないので、クラスライブラリプロジェクトを作成し、プロジェクト設定で「COM の相互運用機能に登録」すればOKです。

ただし、↑のアセンブリを再配布する際は、インストーラの作成がほぼ必須です。

# でなければ、実行環境に .NET Framework SDK を入れて regasm する。

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
ニック
ベテラン
会議室デビュー日: 2004/10/20
投稿数: 60
投稿日時: 2004-11-11 16:18
todo様
渋木様

ご回答ありがとうございます。
もやもやが晴れてすっきりした気分です。
ありがとうございました。

引用:


C# でも、VB.NET でも構わないので、クラスライブラリプロジェクトを作成し、プロジェクト設定で「COM の相互運用機能に登録」すればOKです。

ただし、↑のアセンブリを再配布する際は、インストーラの作成がほぼ必須です。

# でなければ、実行環境に .NET Framework SDK を入れて regasm する。



1

スキルアップ/キャリアアップ(JOB@IT)