如何使用Java设置像SwigType_p_lpcstr这样的swigtype值

how can I set a value of SWIGTYPE like SWIGTYPE_p_LPCSTR using java

本文关键字:swigtype lpcstr 设置 Java SwigType 何使用      更新时间:2023-10-16

我如何使用Java设置像SwigType_p_lpcstr的swigtype的值?

我使用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。我猜这是一个指针,但不知道如何使用它?

这些是不透明的类。您并没有真正使用它们,它们只是通过了。请参阅SWIG 3.0文档

我对这里发生的事情的猜测是,您的标题具有LPCSTR,它是一个可能在另一个标题中定义的宏(可能是char*(,而Swig不知道宏观扩展到SO,而不是使用其键入字符串的键入它将LPCSTR包装到此代理类中。