加载c# dll并找到入口点
本文关键字:入口 dll 加载 | 更新日期: 2023-09-27 18:18:55
如何加载c# dll并从中找到入口点?
我使用了以下代码来加载库 string str = @"D:'MyDLL.dll";
str = Path.GetFullPath(str);
Assembly assembly = Assembly.LoadFile(str);
一种方法是
string str = @"D:'MyDLL.dll";
str = Path.GetFullPath(str);
Assembly assembly = Assembly.LoadFile(str);
string args = {"a", "b"}; //command line args that you need to pass
MethodInfo publicStaticVoidMain = assembly.EntryPoint;
publicStaticVoidMain.Invoke(null, args);
我建议在这个过程中包含一个单独的应用域。但这是不必要的。
编辑:
接下来的辩论节选如下:
- 有不同类型的dll。您必须确切地知道您谈论的是哪种类型的DLL。. net dll与WIN32 dll不同。
- 入口点通常是在dll中定义的方法。
- 。net代码最适合于。net dll。
- 如果一个。net dll没有入口点。
assembly.EntryPoint
返回null。如果有,那么你可以在入口点调用invoke
并进入它。 - 。net exe的行为也类似于。net DLL(甚至可以重命名并使其看起来像DLL)。EXE(即使已重命名)肯定包含该入口点。