gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 16:39:03 25 4
gpt4 key购买 nike

<分区>

在这种情况下,我正在尝试创建一个程序,该程序将读取一个字符串并使用该字符串在 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 文件。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com