VB.NETでVB6のACTIVEX EXEのような動き


でへ  2004-02-13 18:48:47  No: 82046  IP: [192.*.*.*]

VB6.0にて作成したACTIVEX EXEをVB.NETにて作り直そうと思っているのですが、
VB.NETでは、ACTIVEX EXEが作成できません。
VB6.0でACTIVEX EXEにしていた理由は、EXE単体で実行される場合と、違うEXEから呼び出されるケース(プロパティで値を受け渡し)があった為に、行っていました。
VB.NETでもACTIVEX DLLなら作成できるのですが、それだと、単体では動作できません。
VB.NETでこれを実現しようとする場合、どんな方法があるのでしょうか?
ご存知の方いらっしゃいましたら、ご教授ねがいます。

編集 削除
魔界の仮面弁士  2004-02-13 20:55:21  No: 82047  IP: [192.*.*.*]

Visual Studio.NETの開発環境だと、コンパイル時に
[COMの相互運用機能に登録]の指定ができませんが、
それでも ActiveX EXEも作る事は可能ですよ。

実際私は、
  「コンソールアプリとしても動作するAcitveX EXE」
を作成して、それをBATファイルやASP(非ASP.NET)から利用していますし。
# (画像データを受け取って、任意サイズのJpegに変換するだけのアプリ)

「/RegServer」や「/UnregServer」コマンドの実装を省略しても構わなければ、
AcitveX DLLと同様に、クラス等にGUID等の属性を与えておき、コンパイル後に
RegAsmツールを使って、作成したexeをレジストリ登録 & タイプライブラリ化すればOKです。

編集 削除
でへ  2004-02-16 09:17:11  No: 82048  IP: [192.*.*.*]

ありがとうございます。やってみます!!

編集 削除
ま〜しゃ  2005-12-09 17:15:39  No: 82049  IP: [192.*.*.*]

でへさんと同じくVB6.0にて作成したACTIVEX EXEをVB.NETにて作り直しています。

>RegAsmツールを使って、作成したexeをレジストリ登録 & タイプライブラリ化すればOKです。

とありますが、自分なりにやってみた結果うまくいきません。恐らくレジストリ登録が分っていないと思います。詳しく教えて下さい。お願いします。

regasm edsample01.exe /regfile:edsample01.reg
regasm edsample01.exe /tlb:edsample01.tlb
を実行し、タイプライブラリを作成しましたが、edsample01.tlbを参照しようとすると、CLRライブラリからエクスポートされたためインポート出来ません。といわれてしまいます。
また、edsample01.exeの方は有効なアセンブリまたはCOMコンポーネントではありません。といわれます。

編集 削除