none
ActiveX EXE を VB2005で作成する方法 RRS feed

  • 質問

  •  

    お世話になります。

     

    VB2005で、VB6のActiveX EXEのような、単体のEXEとしても動作するクラスライブラリを作成する方法はございますでしょうか。

    VB6のActiveX EXEのプロジェクトをアップグレードすると、クラスライブラリ プロジェクトとしてコンバートされますが、

    本ライブラリを参照するモジュールとは別のプロセスとして動作させたい場合、どのように作成すればよいかわかりません。

     

    VB2005で、ActiveX EXEの関数を提供する方法についてお詳しい方、どうかご教授いただければと思います。

    宜しくお願い致します。

     

     

    2007年10月11日 10:42

すべての返信

  • 私はくわしくないですが。

    単体exeも参照設定できるみたいなのでそのままクラスライブラリとしても使えそうです。

    但し、ActiveXの言葉で言うとインプロセスサーバとして動作するようなので、起動済みのExeを他のExeから制御するという目的では使えないと思われます。

    2007年10月12日 7:36
  •  

    お世話になります。

     

    三輪の牛 様

     

    回答ありがとうございます。

    御指摘のとおり、Windowsアプリケーションとしてビルドした場合でも

    クラスライブラリのように他のプロジェクトから参照して公開しているメソッドを

    コールすることができました。

    ですが、この方法では「COM相互運用機能の登録」の設定ができないので、

    アンマネージC (VC++2005のWin32プロジェクトで/clrオプションを使用しない)から

    参照することができません。

    VB2005のアセンブリをEXEの形式で提供しつつ、アンマネージCから利用する方法は

    ないのでしょうか。

     

    引き続きご教授いただきますよう、宜しくお願い致します。

     

    2007年10月12日 11:05
  • Anonymous様

     

    私も全く同じ所ではまっています。

    ActiveX EXEの形式でアンマネージCからコールする方法は実現できたのでしょうか?

    ご教授頂けるとありがたいです。

    2007年10月30日 9:45
  • >VB2005のアセンブリをEXEの形式で提供しつつ、アンマネージCから利用する方法は
    >ないのでしょうか。

    .NET の標準ライブラリには、アウトプロセスサーバ作成を支援する機能はありません。

    OLE 仕様で定められている、アウトプロセスサーバの使用をすべて満たす実装を全部自分で行えば、技術的には .NET でもアウトプロセスサーバを作成することは可能です。

    .NET1.x 時代か .NET 2.0 登場当時くらいに、その辺の情報を公開しているWebページを見たことがありますが、現存するかどうか分かりません。

    どうしてもアウトプロセスサーバを公開する必要があるなら、アウトプロスサーバとしての「がら」は C++ で書いて、その中から C++/CLI で .NET の実装を呼び出すようにすればいいんじゃないでしょうか。

    2011年4月11日 11:53
  • インプロセスサーバで構わないのなら、exe であっても dll と全く同じように regasm.exe を使っての登録は可能です。
    2011年4月11日 12:08
  • 新たな質問がついたわけでもなく、唐突にレスがついたように見えました。
    悪いことではないのですが、何かきっかけがあったのかなぁと気になった次第です。

    # 3 年前のスレッドだったので :-P


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    2011年4月11日 15:05
    モデレータ
  • おお? 本当だ。

    // 私はスレッドが上がってたから書いただけ-。

    2011年4月11日 15:35