Cómo pasar un array (array de long en java) de Java a C ++ usando Swig
Tengo un archivo .h de ejemplo como abajo:
class Test
{
public:
void SelectValues(long long values[])
};
Usé SWIG y creé la interfaz JNI desde debajo del archivo .i
%module MyLib
%include "carrays.i"
%array_functions(long long, long_long_array )
%{
#include "Test.h"
%}
/* Let's just grab the original header file here */
%include <windows.i> /*This line is used for calling conventions*/
% include "Test.h"
Cuando creo el método Java se crea como:
public void SelectValues(SWIGTYPE_p_long_long includeKeys)
También para el archivo JNI está tomando argumento comojlongArray
pero tomando simplejlong
solamente. Debido a este problema no puedo crear una matriz de largo comolong[]={1L,2L}
y páselo al método Java anterior para llamar al método JNI apropiado.
Quiero que SWIG genere una interfaz de tal manera que pueda pasar la matriz mencionada anteriormente a mi método C ++.
he leídoesta pregunta, pero no me ayudó a ver cómo pasar una matriz de Java a C ++.