java - 从 c++ 到 java 的 std::vector<int64_t> 返回不可用的 SWIGTYPE_p_in64_t
问题描述
我正在尝试使用 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);
痛饮文件:
%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
我希望 StdVector_int64 的 get(...) 方法返回一个长原始类型。
解决方案
推荐阅读
- python - Python TypeError:当脚本单独运行时,字符串索引必须是整数
- linux - 我如何在 linux 中获得没有 sudo 的 pid
- python - 计算列表中每 n 个元素
- javascript - 通过每个级别上的单独条件查找嵌套的对象数组以进行匹配
- fullcalendar - 如果完整日历 5 中有事件,如何设置全天的背景颜色
- html - 允许任何人从 html 文件将数据保存到 amazon-ec2 linux 实例上的 apache 服务器
- r - as.h2o 错误编码特殊字符
- php - PHP 根据搜索输入减少大型文本集
- javascript - 立即状态更新后尝试获取状态值
- c# - DataGridView复制粘贴区分空白单元格和跳过的单元格?