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#应用程序调用{{1}}函数并传递bar()
作为参数,并期望打印出“ 5”吗?
foo()
答案 0 :(得分:0)
定义代表
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
delegate void Func_t(int a);
导入功能
[DllImport(...)]
static extern void bar(Func_t f);
用法
bar(foo);