Как передать массивы из Java в C ++ с помощью Swig?

У меня есть метод на C ++, который принимает в качестве аргумента массив чисел типа double. Я вызываю этот метод из Java, и мне нужно передать массив двойников. Подпрограмма C ++ считывает и изменяет значения массива, и мне нужны эти обновленные значения в Java. Как мне это сделать?

Например, возьмем подпрограмму C ++:

void myMethod( double *values, int size ) {
    for ( int i=0; i < size; i++ ) {
        values[i] = 2*values[i];
    }
}

И код Java:

double[] values = { 1.3, 1.1 };
myMethod(values,values.length);
System.out.println(values[0]); // prints 2.6

Я полагаю, вызов myMethod не может быть выполнен как вызов выше ... или может? И что нужно в Swig, чтобы это работало. Если я не могу выполнить вызов, подобный приведенному выше, как мне передать свои значения в код C ++?

9
задан Jason 12 November 2010 в 17:12
поделиться