将C ++ jintArray传递给C#函数

时间:2014-04-06 19:54:36

标签: 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 array */)
}

我有java函数,使用jni

调用函数
  remDup (Int[] array)

我使用C ++包装器从Java调用C#DLL ...我已经花了一半的时间来找到将jIntArray传递给C#dll函数...但没有成功..完整的R& D和我一样多可以.. ..

差异技术

array<System::Int32^)^ array, Marshal techniques但仍无法将数组从C ++(JintArray)传递给C#DLL .. plz帮助或指南

1 个答案:

答案 0 :(得分:1)

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