如何从C#编译时未知的本地函数中调用(How can i invoke a during compi

2019-09-20 23:14发布

在运行时期间我正在与一个提供String名称,对象的排序后的数组和约本机函数(DllPath的,CALLTYPE等)一些附加信息。

让我们假设所有信息是在一个CallInformation对象。

我怎样才能把这个本地函数?

注意: - 我不能与运行前的DLL提供。 - 我不能与运行前的呼叫信息提供。 - 我不知道运行前的ammount的或类型的呼叫参数。 - 我不知道运行前的返回类型。

在网络上常用的信息有关调用本地函数的调用与交易

  • 在已知的DLL知functionstypes
  • 在未知的dll知functionstypes

我需要的是

  • 在未知的dll未知functionstypes

Answer 1:

该解决方案将涉及Reflection.Emit的。 你必须动态地生成包含您的PInvoke签名装饰根据您CallInformation相应的DllImport属性的类。 对不起,没有代码,但它不能被归结为东西值得张贴,考虑到详细Reflection.Emit的API。



Answer 2:

做一个委托签名动态和使用反射调用它。
只是仰望如何动态创建的代表,如何加载本机功能,如何使用反射来调用一个函数和连接这些在一起。



文章来源: How can i invoke a during compiletime unknown native function from C#