C#应用程序对C ++ DLL具有静态依赖性。可以说C#应用程序中有一个函数如下:
void foo(int a)
{
Console.WriteLine(a);
}
C ++ DLL有一个导出函数,如下所示。
typedef void (*Func_t)(int);
extern "C" __declspec(dllexport) void bar(Func_t f)
{
f(5);
}
我可以从C#应用程序调用bar()
函数并将foo()
作为参数传递并期望打印“5”吗?
bar(foo);
定义委托
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
delegate void Func_t(int a);
导入功能
[DllImport(...)]
static extern void bar(Func_t f);
用法
bar(foo);