void fn(char *s) {
if(s != NULL) {
sprintf(s, "some string");
}
}
我希望使用carrays.i
SWIG模块获取java端的值。但SWIG为我创造了像fn(String s)
这样的东西。如何防止此类转换使用fn(char_p s)
来使用carrays
功能。
答案 0 :(得分:0)
文档说carrays.i用于将C指针视为Java数组。此外,signed char
不会映射到String
。因此,void fn(signed char *INOUT)
会为您提供public final static native void fn(byte[] jarg1)
您在模块.i文件中覆盖C声明(可能在C头文件中):
%module test
%include "typemaps.i"
%include "carrays.i"
%{
extern void fn(char *);
%}
extern void fn(signed char *INOUT);