Я пытаюсь использовать swig (v3) для преобразования функции, имеющей std :: vector в качестве входа в код Java. но при компиляции с помощью swig я получил файл с классом StdVector_int64 с методом get (int i), который возвращает SWIGTYPE_p_in64_t ...., который неприменим. так что мой вопрос, как преобразовать SWIGTYPE_p_in64_t.java в примитивный тип Java?
Я создал файл tools.swig с директивой шаблона, но он не работает должным образом.
заголовочный файл c ++:
#pragma once
#include <vector>
#include "stdint.h"
extern void computeVector(std::vector<int64_t> _return);
файл swig:
%module(directors="1") LocalServices
%include "std_vector.i"
%include "stdint.i"
%{
#include "tools.h"
using namespace cov::core;
%}
%template(StdVector_int64) std::vector< in64_t >;
%javaconst(1);
%include "tools.h"
команда запущена:
swig -c++ -DSWIGWORDSIZE64 -java tools.swig
Я хочу, чтобы метод get (...) из StdVector_int64 возвращал длинный примитивный тип.