Como passar array (array de long em java) de Java para C ++ usando Swig
Eu tenho um exemplo de arquivo .h como abaixo:
class Test
{
public:
void SelectValues(long long values[])
};
Eu usei o SWIG e criei a interface JNI abaixo do arquivo .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"
Quando eu crio o método Java, ele cria como:
public void SelectValues(SWIGTYPE_p_long_long includeKeys)
Também para o arquivo JNI, ele está aceitando o argumentojlongArray
mas tendo simplesjlong
só. Devido a este problema eu não posso criar uma série de longos comolong[]={1L,2L}
e passá-lo ao método Java acima para chamar o método JNI apropriado.
Eu quero que o SWIG gere a interface de tal forma que eu possa passar a matriz acima mencionada para o meu método C ++.
eu liessa questão, mas não me ajudou a ver como passar um array de Java para C ++.