通过C&x2B+;jintArray到C#函数

通过C&x2B+;jintArray到C#函数,c#,java,c++,arrays,java-native-interface,C#,Java,C++,Arrays,Java Native Interface,我有一个C#dll,它有一个函数 public static Int32[] remDup(Int32[] dArray){ return dArray.Distinct().toArray(); } 我有这个的jni函数 JNIEXPORT remDup..... ( jintArray dupArray){ // from java call i get dupArray CsharpDLL::CSharpClass::remDup(/*pass an int32 a

我有一个C#dll,它有一个函数

public static Int32[] remDup(Int32[] dArray){
   return dArray.Distinct().toArray();
}
我有这个的jni函数

JNIEXPORT remDup..... ( jintArray dupArray){
    // from java call i get dupArray
    CsharpDLL::CSharpClass::remDup(/*pass an int32 array */)
}
我有一个java函数,它使用jni调用下面的函数

  remDup (Int[] array)
< >我用C++包装器调用java语言的c*ydll…我已经花了半天的时间研究如何将jIntArray传递给C#dll函数。。。但是没有成功。。尽我所能完成研发工作

不同的技术


i、 e
array一个解决方案是创建一个与数组大小相同的新cli::array,然后使用for将所有元素设置为新数组,并将其传递给c#函数。

这可能有助于@Bogdan thnx dude!但是它给下面的错误提供了一个
“cli::array^”
类型的值,不能用于初始化
“cli::array^”
类型的实体对不起,不熟悉jintArray,但最糟糕的解决方案是创建一个与您的数组大小相同的新cli::数组,然后使用for将所有元素设置为新数组,并将其传递给c#function…@Bogdan thanx dude,您的链接对我很有帮助。。。如果你能正确地回答上述评论作为答案。。我可以将其标记为答案:)添加为答案,我不追逐分数,但有些人可能会在谷歌上搜索该问题,这将对他们有用;)