将函数作为参数传递给外部dll C#

时间:2017-09-07 15:18:38

标签: c# dll parameters dllimport

我正在尝试在我的项目中使用一个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'的编组:无法执行泛型类型的编组。

0 个答案:

没有答案