11

C# で記述された「アウト オブ プロセス」COM サーバーを実装しようとしています。どうすればいいですか?

.NET ランタイムをメイン プロセス空間にロードできないため、C# コードをメインの C++ アプリケーションから "out of proc" にする必要があります。

理由:
私の C++ コードは、多くの異なる顧客 EXE にロードされる DLL 内にあり、そのうちのいくつかは異なるバージョンの .NET ランタイムを使用しています。1 つのプロセスにロードできるランタイムは 1 つだけなので、私の最善の策は、C# コードを別のプロセスに配置することです。

4

4 に答える 4

7

System.EnterpriseServices.ServicedComponent を使用して COM+ コンポーネントを作成できます。その結果、アウト オブ プロセスおよびイン プロセス (クライアント) コンポーネントのアクティブ化、およびプール、リモート処理、Windows サービスとしての実行などのすべての COM+ の利点を作成できます。

于 2008-09-02T09:41:09.230 に答える
1

ここでは可能であることが読み取れますが、exe はライブラリとしてロードされ、exe のような独自のプロセスでは開始されません。それがあなたにとって問題かどうかわかりませんか?また、実際のプロセス外の com サーバーのように動作させたい場合の解決策もいくつか含まれています。しかし、プロセス間通信の別の方法を使用する方が良いかもしれません。.Net Remoting のように。

于 2008-08-27T17:25:28.770 に答える
0

.netランタイムをプロセススペースにロードできないのはなぜですか?.netランタイムをホストし、COMを使用して.netを呼び出すことができます。

于 2008-08-28T02:00:07.007 に答える
0

これを方法として推奨することはできませんが、C# ライブラリ用の COM 呼び出し可能なラッパーを作成してから、呼び出しを C# ライブラリに委任する VB6 ActiveX exe プロジェクトを作成することはできます。

于 2008-08-27T17:19:04.853 に答える