c++/cli中委派delegate实现回调,其参数如何在c++/c#之间转换

dolphinkingsjtu 2011-05-07 06:58:06
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++中的不同, 需要另一个转化,

在网上的例子都很简单,并不存在这样的问题

请指教

...全文
228 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧