4

32 ビット COM (ActiveX) DLL からコンポーネント (および関連するヘルパー関数) を読み込む C# アプリがあります。

これはすべてうまく機能しますが、私の処理はメモリをかなり消費します (特にマルチ プロセッサ マシンで実行する場合)。そのため、ActiveX DLL をプロセス外でロードできるようにしたいと考えています。これにより、64 ビット アプリケーションから直接 DCOM を介してすべての機能にアクセスできるようになることを理解しています (私の COM はかなり錆びていますが)。

ただし、VS2010 で DLL をアウトプロセスでロードできるようにする方法はないようです。必要なグルー コードを自動的に生成し、CLSCTX_INPROC_SERVER を使用した CoCreateInstance と同等のものを介してロードするようです。CLSCTX_LOCAL_SERVER としてロードするように指示する方法はありますか (これは、独自のプロセスで開始されると思います)。

32 ビット DLL をラップする独自のラッパー DLL/EXE を記述し、そのラッパーをアウトプロセス サーバーとしてロードできるようにする唯一の方法はありますか? これを行うことの苦痛は、おそらく、非常に単純な方法で機能を使用できないことです.

きっともっと簡単な方法がありますか?

どんな助けでも大歓迎です!

4

0 に答える 0