在 Java 和 C 之间传递数据

2022-01-25 00:00:00 c java java-native-interface

I have a C structure.

struct data{
    double value1[50];
    double value2[50];
    int count;
};

I want to map data from java to this C structure.How can I do it using JNI? The java code will not be programmed by me. The java programmer just wants to know in which form should he send me the data? Should he expect any more details

I am currently testing my code by filling the structure instance with a CSV file containing 2 columns.

I also want to return 3 double values from my C code to the java application.

解决方案

Provide the following declaration to your java programmer:

public native double[] doData(double [] value1, double [] value2, int count);

In your c code you will be able to fill the structure with passed parameters. JNI header will look like this:

JNIEXPORT jdoubleArray JNICALL Java_package_className_doData(JNIEnv * , jobject, jdoubleArray , jdoubleArray, jint);

相关文章