如何在我的主类中使用SWIGTYPE_p_CHAR类?

时间:2012-08-09 09:55:54

标签: java c java-native-interface swig

我使用了字体图:

%include "typemaps.i"

%apply SWIGTYPE * {char *deci};

这是SWIG生成的代理类:

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;
    }
}

1 个答案:

答案 0 :(得分:1)

这似乎微不足道,但你试过了吗?

SWIGTYPE_p_char my_p_char;

毕竟,该类包含的所有内容都是指针地址的长整型表示

显然你只能将它用于一个返回char *或使用char *参数作为伪返回值的c函数

如果你想使用char *输入参数,那么你很可能必须编写某种类型的辅助函数

我最近用SWIG包装了这个函数原型:

int load_config(const char *fn, Config *cfg);

将数据从字符串(char *)

指定的文件加载到我的Config数据结构中

我可以通过以下代码从Java中调用它:

example.load_config("test.cfg", cfg);

或者:

String cfg_file = "test.cfg";
example.load_config(cfg_file, cfg);
相关问题