请我需要知道是否可以使用 ac#.net dll 使用execdll.exe执行方法。
我正在尝试执行一个简单的方法 Hello World,但我收到错误“无法浏览此文件的功能”。我不知道我是否做错了什么。
我假设您的意思是 rundll32.exe 或至少 execdll.exe 是类似的东西。
.NET 类不能作为普通 DLL 公开。不过,它们可以作为 COM DLL 公开。因此,实现所需的唯一方法是将 .NET 类公开为 COM,然后编写一个常规 DLL(在 C++、Delphi 等中)来实例化您的 COM 对象并调用它。然后,您可以从 rundll32.exe 或您使用的任何工具调用您的 DLL。
检查方法是否公开,
.
另一件事:只有静态方法在您的上下文中才有意义
我赞成@Devils Child 方法:
从您的进程中运行 DLL...
如果可以,请在设计时引用它...
或在运行时使用反射...
如果它不是静态方法,请使用 Activator(根据需要)
此致。
您可以为此使用程序集
Assembly.Load(byteArrayOfDll).EntryPoint.Invoke(null, null);