首页 新闻 会员 周边

C/C++语言调用C#函数(非托管调用托管),参数个数的问题。

0
悬赏园豆:20 [已解决问题] 解决于 2015-06-26 10:13

我有一个C/C++写的dll,通过使用dllimport暴露给C#的方法,我把C#里的一个委托变量(也就相当于函数指针)传给了这个C/C++写的dll,然后在dll中调用C#里的这个函数/方法,通常情况下函数签名里有十个八个的参数,用起来都是非常顺畅的,只要注意此委托变量别被GC回收即可(定义为全局变量或静态变量都可以)。

但是最近我遇到一个问题,就是我想定义一个有20个int参数的委托传给dll,c/c++和c#里定义和传递指针都是没有问题的,但是在dll中调用时却会报运行时错误,原因是参数过多,所以我不得不减少参数个数然后循环调用此方法,来完成这20个值的传递,请教大家有什么办法可以让我一次调用就把这20个参数从c/c++传给c#么?

先谢过~ ^^

C C++ C#
钻葛格的主页 钻葛格 | 菜鸟二级 | 园豆:342
提问于:2015-06-26 08:43
< >
分享
最佳答案
1

struct xxx

{

 int 1;

 ...;

 int 20;
}

收获园豆:20
Launcher | 高人七级 |园豆:45045 | 2015-06-26 09:17

感谢,再追问您一句。。我在c和c#两边各定义相同结构的这样的一个结构体(只有int成员)就可以互传么?

钻葛格 | 园豆:342 (菜鸟二级) | 2015-06-26 09:42

@钻葛格: 可以。记得传引用。

Launcher | 园豆:45045 (高人七级) | 2015-06-26 10:02

@Launcher: 好滴,非常感谢,结贴放分啦~

钻葛格 | 园豆:342 (菜鸟二级) | 2015-06-26 10:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册