Как передать массив (массив long в Java) из Java в C ++, используя Swig

У меня есть образец .h файла, как показано ниже:

class Test
{
public:
       void SelectValues(long long values[])
};

Я использовал SWIG и создал интерфейс JNI снизу .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"

Когда я создаю Java-метод, он создает:

public void SelectValues(SWIGTYPE_p_long_long includeKeys)

Также для файла JNI он принимает аргумент какjlongArray но принимая простойjlong только. Из-за этой проблемы я не могу создать массив длинных какlong[]={1L,2L} и передайте его вышеупомянутому методу Java для вызова соответствующего метода JNI.

Я хочу, чтобы SWIG генерировал интерфейс таким образом, чтобы я мог передать вышеупомянутый массив моему методу C ++.

я прочиталэтот вопрос, но это не помогло мне понять, как передать массив из Java в C ++.

Ответы на вопрос(1)

Ваш ответ на вопрос