C# 委托(delegate)、dll、动态内容

标签 c# reflection delegates

<分区>

在这种情况下,我正在尝试创建一个程序,该程序将读取一个字符串并使用该字符串在 dll 中 dll 一个函数。

看到这个

[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate void MessageBoXy(string a, string b);

UnmanagedLibrary test = new UnmanagedLibrary("Test.dll");
MessageBoXy testX = test.GetUnmanagedFunction<MessageBoXy>("Testy");
testX.DynamicInvoke("Hello there", "lol");

当我使用 DynamicInvoke 时,我的“Test.dll”被调用,MessageBoxA 使用通过 c# 传递的字符串从 dll 中执行....

一切都很好,但这是我需要帮助的地方....

你看到这个 private delegate void MessageBoXy(string a, string b); 它是静态的,不能改变.....现在我需要程序读取一个字符串并改变返回值和委托(delegate)的参数....例如

我想读取一个字符串,如“Call Test.dll RETURN string PARAMS int, int, char, string”

现在应该可以无限扩展参数并为其创建委托(delegate),然后调用 DLL 中的函数。

我正在制作一种宏程序,我希望用户能够在 DLL 中输入一个返回值和参数,然后调用该 dll,所以我不知道用户需要什么参数或返回值,所以 c#代码必须能够创建我需要的任何委托(delegate)。

我需要什么?

我需要一个类或示例来展示如何生成对象设置返回值,设置参数然后使用对象[]数组调用对象,该数组将成为参数,例如myFunc(string a, string b) 将被创建并且 object[0] 将是参数 1 等等....

底线是我需要能够从用户创建的脚本中动态调用 dll 文件。

最佳答案

关于C# 委托(delegate)、dll、动态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8206783/

相关文章:

c# - 快照将事件处理程序值作为 C# 中的方法参数

c# - 我应该如何设计我的对象模型以便我的 DAL 可以填充只读字段?

生成的 Protobuf 上的 Java 反射但找不到类

c# - 使用 jQuery .load() 加载用户控件

reflection - TypeScript:检查派生类是否实现了方法

java - Java 中的解释性语言以及对 Java 方法的调用

iphone - 无法识别的选择器,委托(delegate)问题

c# - 我希望能够使用 lambda 表达式来指定要通过 wcf 服务返回的值范围

c# - 使用可从 Excel(或非 VFP)读取的 C# 代码创建 .DBF

c# - 在 Web API 中使用 id 参数后的 Action 进行路由