如何在.Net 4.5中从DLL Main调用托管代码?
我正在尝试开发一个在远程进程中执行托管代码的应用程序。
目前,我开发了一个Cpp dll,它在DLLMain中加载托管程序集并执行静态方法。
我使用CreateRemotedThread使远程进程调用LoadLibrary来加载cpp dll并自动执行dllmain。
现在我遇到了异常:在OS Loader锁中尝试托管执行。不要尝试在DllMain或图像初始化函数中运行托管代码,因为这样做会导致应用程序挂起。
在MSDN和谷歌搜索后,我注意到根本原因是在Dllmain中执行托管代码
所以我的问题是:
答案 0 :(得分:0)
从非托管代码调用托管代码的最简单方法是为托管代码程序集启用COM可见性,然后使用COM从非托管代码中调用它。
这里有一个很好的例子;它已经很老了,但它仍然相关: