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.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage