首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >(JNI)从cpp lib调用函数时的数据类型转换

(JNI)从cpp lib调用函数时的数据类型转换
EN

Stack Overflow用户
提问于 2018-08-13 02:06:46
回答 1查看 81关注 0票数 1

CPP新手在这里。我正在尝试从我的java应用程序调用库函数。我需要帮助来匹配我的java类中C函数的数据类型

C函数签名

代码语言:javascript
复制
#define I_REAL double

int myfunction(int size,
  I_REAL const *const *inputs,
  I_REAL const *options,
  I_REAL *const *outputs);

我的java原生方法签名(这可能是不正确的,我不太确定const *const *inputs如何在java中翻译)

代码语言:javascript
复制
    public static native int myfunction(int size,
                                final double[][] inputs,
                                final double[] options,
                                final double[][] outputs);

然后,我使用javac Myclass.java -h .生成头文件

然后我实现了我的cpp代码-

代码语言:javascript
复制
 JNIEXPORT jint JNICALL Java_com_raj_myfunction
  (JNIEnv *, jclass, jint, jobjectArray, jdoubleArray, jobjectArray)
 {
  // something useful here
 }

我得到一个运行时错误- java.lang.NoSuchMethodError: com.raj.Myclass.myfunction(I[D[D[D)I

我在想我的java原生方法签名出现了一些问题。我必须匹配C函数签名,任何帮助都很感谢。

EN

回答 1

Stack Overflow用户

发布于 2018-08-13 07:07:58

您可以像从double数组读取一样直接从jdouble* incoming读取。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51811520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档