VB6.0にて作成したACTIVEX EXEをVB.NETにて作り直そうと思っているのですが、
VB.NETでは、ACTIVEX EXEが作成できません。
VB6.0でACTIVEX EXEにしていた理由は、EXE単体で実行される場合と、違うEXEから呼び出されるケース(プロパティで値を受け渡し)があった為に、行っていました。
VB.NETでもACTIVEX DLLなら作成できるのですが、それだと、単体では動作できません。
VB.NETでこれを実現しようとする場合、どんな方法があるのでしょうか?
ご存知の方いらっしゃいましたら、ご教授ねがいます。
Visual Studio.NETの開発環境だと、コンパイル時に
[COMの相互運用機能に登録]の指定ができませんが、
それでも ActiveX EXEも作る事は可能ですよ。
実際私は、
「コンソールアプリとしても動作するAcitveX EXE」
を作成して、それをBATファイルやASP(非ASP.NET)から利用していますし。
# (画像データを受け取って、任意サイズのJpegに変換するだけのアプリ)
「/RegServer」や「/UnregServer」コマンドの実装を省略しても構わなければ、
AcitveX DLLと同様に、クラス等にGUID等の属性を与えておき、コンパイル後に
RegAsmツールを使って、作成したexeをレジストリ登録 & タイプライブラリ化すればOKです。
ありがとうございます。やってみます!!
編集 削除でへさんと同じく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コンポーネントではありません。といわれます。