我有一个C/C++写的dll,通过使用dllimport暴露给C#的方法,我把C#里的一个委托变量(也就相当于函数指针)传给了这个C/C++写的dll,然后在dll中调用C#里的这个函数/方法,通常情况下函数签名里有十个八个的参数,用起来都是非常顺畅的,只要注意此委托变量别被GC回收即可(定义为全局变量或静态变量都可以)。
但是最近我遇到一个问题,就是我想定义一个有20个int参数的委托传给dll,c/c++和c#里定义和传递指针都是没有问题的,但是在dll中调用时却会报运行时错误,原因是参数过多,所以我不得不减少参数个数然后循环调用此方法,来完成这20个值的传递,请教大家有什么办法可以让我一次调用就把这20个参数从c/c++传给c#么?
先谢过~ ^^
struct xxx
{
int 1;
...;
int 20;
}
感谢,再追问您一句。。我在c和c#两边各定义相同结构的这样的一个结构体(只有int成员)就可以互传么?
@钻葛格: 可以。记得传引用。
@Launcher: 好滴,非常感谢,结贴放分啦~