我正在尝试在我的项目中使用一个dll,它有一个接收函数作为参数的方法,但我不知道如何使用C#进行该调用。
以下是dll手册提供的示例。
do_pkd(void(*put-byte) (char));
我认为这是C中的一个例子,我不知道如何在C#上执行相同的调用
这是我现在要做的方式
public static void Main(string[] args)
{
Console.WriteLine(do_pkd(put_byte));
}
[DllImport(@"C:\pkwin32.dll", CallingConvention = CallingConvention.Cdecl)]
static unsafe extern char do_pkd(Action<char> put_byte);
private static void put_byte(char s)
{
//TO-DO
Console.WriteLine(s);
}
我收到以下错误:
无法执行'参数#1'的编组:无法执行泛型类型的编组。