调用在运行时指定的本机代码

时间:2010-08-11 23:39:08

标签: c# .net pinvoke native

我正在开发一个允许用户从托管和本机.dll调用外部代码的应用程序。用户将能够指定在运行时调用的库/方法/函数(它将存储在配置文件中)。

如果我知道我想在编译时调用什么dll /函数,我知道如何使用pinvoke为本机库执行此操作,但我找不到有关如何在运行时执行此操作的任何信息。

基本上我想做的是调用方法:

int result = ExecuteNativeFunction("someLibrary.dll", "foo");

让它做一些等同于:

的事情
[DllImport("someLibrary.dll")]
static extern int foo();

...

int result = foo();

1 个答案:

答案 0 :(得分:2)

this会成为您想要的吗?使用System.Reflection.Emit,您可以动态编译定义新PInvoke方法的代码。有关详细信息,请参阅linked file中的课程DllRegServer