-2

.Net 4.5 で DLL Main からマネージド コードを呼び出す方法はありますか?

リモート プロセスでマネージド コードを実行するアプリケーションを開発しようとしています。

現在、DLLMain にマネージ アセンブリをロードし、静的メソッドを実行する Cpp dll を開発しています。

CreateRemotedThread を使用してリモート プロセスを作成し、LoadLibrary を呼び出して cpp dll をロードし、dllmain が自動的に実行されるようにします。

今、私は例外を受け取りました:OSローダーロック内で管理された実行を試みています。DllMain またはイメージ初期化関数内でマネージ コードを実行しようとしないでください。実行すると、アプリケーションがハングする可能性があります。

MSDN と Google で検索した後、根本的な原因は Dllmain でマネージド コードを実行していることにあることに気付きました

だから私の質問は:

  1. 私の場合、マネージド コードを呼び出す方法
  2. およびその他のソリューションは、リモート プロセスでマネージド コードを実行できます
4

1 に答える 1

0

アンマネージ コードからマネージ コードを呼び出す最も簡単な方法は、マネージ コード アセンブリの COM 可視性を有効にし、COM を使用してアンマネージ コードから呼び出すことです。

ここに良い例があります。それはかなり古いですが、まだ関連しています:

http://support.microsoft.com/kb/828736

于 2013-06-09T08:46:36.280 に答える