-2

有什么方法可以在.Net 4.5 中从 DLL Main 调用托管代码?

我正在尝试开发一个应用程序来在远程进程中执行托管代码。

目前,我开发了一个 Cpp dll,它在 DLLMain 中加载托管程序集并执行一个静态方法。

我使用 CreateRemotedThread 使远程进程调用 LoadLibrary 以加载该 cpp dll 和 dllmain 将自动执行。

现在我得到了例外:尝试在 OS Loader 锁内进行托管执行。不要尝试在 DllMain 或图像初始化函数中运行托管代码,因为这样做会导致应用程序挂起。

在 MSDN 和 google 中搜索后,我注意到根本原因是在 Dllmain 中执行托管代码

所以我的问题是:

  1. 在我的情况下调用托管代码的任何方式
  2. 和其他解决方案可以在远程进程中执行托管代码
4

1 回答 1

0

从非托管代码调用托管代码的最简单方法是为托管代码程序集启用 COM 可见性,然后使用 COM 从非托管代码调用它。

这里有一个很好的例子;它已经很老了,但仍然很重要:

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

于 2013-06-09T08:46:36.280 回答