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

标签 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 函数...但没有成功..尽我所能进行完整的研发..

不同的技术

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/

相关文章:

java - Java 中用于音频的循环 ShortBuffer

java - Rsync 命令在 Java 中不起作用

c++ - 导出序号而不带 def 文件

c++ - 从 Google 模拟中的模拟对象返回模拟对象

java - .pde 文件作为 Eclipse 中的 Java 类文件?

c++传递成员函数

C# 使用 Assembly 调用 DLL 中的方法

c# - Postgresql/npgsql 在使用丹麦字母时无法写入

c# - ArgumentOutOfRangeException 构造函数(字符串)定义

c# - 向现有函数添加功能(C#、C++)