PInvoke C#:Function将指针作为参数

我想在我的c#代码中访问这个函数,这可能吗? 所以最后c ++代码会调用我的函数并应用名为“sFrameofData”的结构。

C ++代码:

//The user supplied function will be called whenever a frame of data arrives. DLL int Cortex_SetDataHandlerFunc(void (*MyFunction)(sFrameOfData* pFrameOfData)); 

这可能会起作用吗?

C#代码:

 [DllImport("Cortex_SDK.dll")] public extern static int Cortex_SetDataHandlerFunc(ref IntPtr function(ref IntPtr pFrameOfData) ); 

您希望使用与“MyFunction”C ++方法的方法签名匹配的委托。

 [UnmanagedFunctionPointer(CallingConvention.Cdecl)] public delegate void MyFunctionDelegate(IntPtr frame); [DllImport("Cortex_SDK.dll")] public extern static int Cortex_SetDataHandlerFunc( [MarshalAs(UnmanagedType.FunctionPtr)]MyFunctionDelegate functionCallback); 

我不确定什么是正确的方法,但我不认为使用ref IntPtr来实现function和结构……

请看这里寻求帮助: C#P / Invoke:包含函数指针的编组结构