Jak przekazać tablicę (tablicę długich w java) z Java do C ++ za pomocą Swig
Mam przykładowy plik .h, jak poniżej:
class Test
{
public:
void SelectValues(long long values[])
};
Użyłem SWIG i stworzyłem interfejs JNI poniżej pliku .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"
Kiedy tworzę metodę Java, tworzy ona:
public void SelectValues(SWIGTYPE_p_long_long includeKeys)
Również dla pliku JNI przyjmuje argument jakojlongArray
ale prostejlong
tylko. Ze względu na ten problem nie mogę utworzyć tablicy o długości podobnej do tejlong[]={1L,2L}
i przekaż ją do powyższej metody Java, aby wywołać odpowiednią metodę JNI.
Chcę, aby SWIG generował interfejs w taki sposób, że mogę przekazać wyżej wymienioną tablicę do mojej metody C ++.
przeczytałemto pytanie, ale to nie pomogło mi zobaczyć, jak przekazać tablicę z Java do C ++.