1

请我需要知道是否可以使用 ac#.net dll 使用execdll.exe执行方法。

我正在尝试执行一个简单的方法 Hello World,但我收到错误“无法浏览此文件的功能”。我不知道我是否做错了什么。

4

3 回答 3

0

我假设您的意思是 rundll32.exe 或至少 execdll.exe 是类似的东西。

.NET 类不能作为普通 DLL 公开。不过,它们可以作为 COM DLL 公开。因此,实现所需的唯一方法是将 .NET 类公开为 COM,然后编写一个常规 DLL(在 C++、Delphi 等中)来实例化您的 COM 对象并调用它。然后,您可以从 rundll32.exe 或您使用的任何工具调用您的 DLL。

于 2012-04-25T09:29:52.593 回答
0

检查方法是否公开,

.

另一件事:只有静态方法在您的上下文中才有意义

我赞成@Devils Child 方法:

从您的进程中运行 DLL...

如果可以,请在设计时引用它...

或在运行时使用反射...

如果它不是静态方法,请使用 Activator(根据需要)

此致。

于 2012-04-24T07:03:05.187 回答
0

您可以为此使用程序集

Assembly.Load(byteArrayOfDll).EntryPoint.Invoke(null, null);
于 2012-04-24T06:45:43.290 回答