我使用了类型映射:
%include "typemaps.i"
%apply SWIGTYPE * {char *deci};
这是SWIG生成的proxy类:
public class SWIGTYPE_p_char {
private long swigCPtr;
protected SWIGTYPE_p_char(long cPtr, boolean futureUse) {
swigCPtr = cPtr;
}
protected SWIGTYPE_p_char() {
swigCPtr = 0;
}
protected static long getCPtr(SWIGTYPE_p_char obj) {
return (obj == null) ? 0 : obj.swigCPtr;
}
}
发布于 2012-08-09 18:34:34
这看起来微不足道,但你有没有尝试过:
SWIGTYPE_p_char my_p_char;
毕竟,该类所包含的只是指针地址的一个长整型表示
显然,您只能将其用于返回char*或将char*参数用作伪返回值的c函数
如果您想要使用char*输入参数,那么您很可能必须编写某种帮助函数
我最近用SWIG封装了这个函数原型:
int load_config(const char *fn, Config *cfg);
它将数据从字符串(char*)指定的文件加载到我的配置数据结构中
我可以用下面这行代码从Java调用它:
example.load_config("test.cfg", cfg);
或者:
String cfg_file = "test.cfg";
example.load_config(cfg_file, cfg);
https://stackoverflow.com/questions/11880848
复制相似问题