2012-07-06 209 views
0

我想在C#中创建一个DLL,但我需要知道在将某个进程注入时调用的主要方法名称是什么。如何在C#中创建DLLMain

例如,DLLMainC++

+10

没有这样的事情存在。 – leppie 2012-07-06 08:20:52

+0

另外请注意,可以说,'DllMain()'(由于加载程序锁定问题)的大多数用法[有缺陷](http://www.voyce.com/index.php/2009/12/03/dont-无论如何do-anything-in-dllmain-please /)或[危险](http://blogs.msdn.com/b/oldnewthing/archive/2004/01/28/63880.aspx)。也许你想告诉我们你实际上想要达到的目标。 – 2012-07-06 08:23:43

+0

好吧,我想附加一个DLL到一个进程和DLL正在做一个例程检查一些文件,如果他们存在等..,我想DLL应该有一个主要的方法在哪里执行代码 – Jax 2012-07-06 08:25:20

回答

2

即使它已经4岁了,我也会回答这个问题,以便有一个正确的答案。

虽然你可以使用LoadLibrary或类似的调用使用P/Invoke,.NET的DLL管理的DLL的无法在非托管环境中使用,使用.NET托管DLL。简单地提供通常的DLL函数,然后从Delphi,C++等中使用它,实在没有办法。

可以做的是创建一个COM-DLL。在.NET中这很容易,在注册DLL之后,您可以使用COM中其他语言在DLL中定义的类。

你也可以尝试使用C++混合模式创建一个包装器DLL,但是到目前为止我还没有这样做,因为我对C++没有太多的了解。您可能能够使用非托管应用程序中的非托管部分,并让它调用托管部分。