So übergeben Sie Array (Array von Long in Java) mit Swig von Java an C ++
Ich habe Beispiel .h-Datei wie folgt:
class Test
{
public:
void SelectValues(long long values[])
};
Ich habe SWIG verwendet und die JNI-Schnittstelle aus der folgenden .i-Datei erstellt
%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"
Wenn ich eine Java-Methode erstelle, sieht das so aus:
public void SelectValues(SWIGTYPE_p_long_long includeKeys)
Auch für JNI-Dateien wird argumentiert alsjlongArray
aber einfach nehmenjlong
nur. Aufgrund dieses Problems kann ich kein Array von langen Like erstellenlong[]={1L,2L}
und übergeben Sie es an die obige Java-Methode, um die entsprechende JNI-Methode aufzurufen.
Ich möchte, dass SWIG die Schnittstelle so generiert, dass ich das oben erwähnte Array an meine C ++ - Methode übergeben kann.
ich habe gelesendiese Frage, aber es hat mir nicht geholfen zu sehen, wie man ein Array von Java nach C ++ übergibt.