【发布时间】:2011-11-29 18:16:23
【问题描述】:
我有两个 C 函数,我通过 SWIG 向我的 Java 层公开,它们都有一个输入参数,其数据类型为 const void * 数据类型(“val),对于 addCategory 函数需要是 uint8_t,但对于addAttribute 函数。我目前在 SWIG 接口文件中,使用 %apply 将 const void * C 类型映射到 Java 端的 short 。有没有办法修改 SWIG 接口文件以同时支持 char (字符串)和 const void * 输入参数的 uint8_t(短)?
头文件中的C函数:
int
addCategory(query_t *query, type_t type, const void *val);
int
addAttribute(query_t *query, type_t type, const void *val);
SWIG 接口文件:
%module Example
%include "stdint.i"
void setPhy_idx(uint32_t value);
%include "arrays_java.i"
void setId(unsigned char *value);
%{
#include "Example.h"
%}
%apply char * { unsigned char * };
%apply char * { void * };
%apply uint8_t { const void * }
%apply int32_t { int32_t * }
%include "Example.h"
【问题讨论】:
标签: swig