CPP新手在这里。我正在尝试从我的java应用程序调用库函数。我需要帮助来匹配我的java类中C函数的数据类型
C函数签名
#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中翻译)
public static native int myfunction(int size,
final double[][] inputs,
final double[] options,
final double[][] outputs);
然后,我使用javac Myclass.java -h .
生成头文件
然后我实现了我的cpp代码-
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函数签名,任何帮助都很感谢。
发布于 2018-08-13 07:07:58
您可以像从double
数组读取一样直接从jdouble* incoming
读取。
https://stackoverflow.com/questions/51811520
复制相似问题