如何使用java设置SWIGTYPE的值,如SWIGTYPE_p_LPCSTR

时间:2017-04-24 11:36:23

标签: java c++ java-native-interface swig

如何使用java设置SWIGTYPE的值,如SWIGTYPE_p_LPCSTR?

我使用来自c ++头文件的swig生成了java接口类。

有一个问题,许多C ++类型被包装到这样的类中:

public class SWIGTYPE_p_LPCSTR {
    private transient long swigCPtr;

    protected SWIGTYPE_p_LPCSTR(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
    swigCPtr = cPtr;
  }

  protected SWIGTYPE_p_LPCSTR() {
    swigCPtr = 0;
  }

  protected static long getCPtr(SWIGTYPE_p_LPCSTR obj) {
    return (obj == null) ? 0 : obj.swigCPtr;
  }
}

实际上,我只是希望它是一个类似字符串或int的简单类型。我猜这是一个指针,但不知道如何使用它?

1 个答案:

答案 0 :(得分:0)

这些是不透明的类。你并没有真正使用它们,它们只是传递它们。 请参阅SWIG 3.0 Documentation

我对这里发生的事情的猜测是你的标题有一个LPCSTR,它是一个可能在另一个标题中定义的宏(可能是char *),SWIG不知道宏扩展到什么,所以不使用它的字符串类型映射它将LPCSTR包装到此代理类中。