我有 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 函数...但没有成功..尽我所能进行完整的研发..
不同的技术
即array<System::Int32^)^ array, Marshal techniques
但仍然无法将数组从 C++ (JintArray) 传递到 C# DLL .. 请帮助或指导
最佳答案
一个解决方案是创建一个大小为 jintArray 的新 cli::array,然后使用 for 将所有元素设置为新数组并将其传递给 c# 函数。
关于c# - 将 C++ jintArray 传递给 C# 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22899191/