c++/cli中委派delegate实现回调,其参数如何在c++/c#之间转换
c++/cli 代码
在unmanaged code 中,有
typedef void (*Fp1) (double *, double* );
typedef void (*Fp2) (double *, double *, Fp1);
函数int f(double *a, Fp1, Fp2)
现在在managed 部分, 要求Fp1, Fp2 所关联的代码为c#代码
即c++中 f 要回调 c#中的FFp1, FFp2
要求 void FFp1 (double [], double []);
void FFp2 (double [], delegateFp1 )
为实现转化, 已声明
delegate void delegateFFp1 (double [], double []);
delegate void delegateFFp2 (double [], delegateFp1);
同时对于函数f, 已转化为managed : int fmanaged (double []^, delegateFp1^, delegateFp2^)
在主函数c#中,经过实例化后, c++中的f已能成功回调c#中的ffp1, ffp2定义,
问题在于FFp1,FFp2中的参数定义与c++中的不同, 需要另一个转化,
在网上的例子都很简单,并不存在这样的问题
请指教