现在需要使用 java 调用一个 C++导出的 dll。
C++中的方法声明如下:
ISample* __stdcall GetSample();
ISample 本身是 C++中声明的一个接口,也就是个纯虚类。我在 Java 中对应的代码如下。
public interface ISample extends Library {
ISample instance = (ISample) Native.loadLibrary("apiname", ISample.class);
public Pointer GetSample(); }
现在这个方法是可以调用成功的,但是我要如何操作返回的这个 ISample 呢,类型是 Pointer,只有一个地址。。。
在网上能找到一些关于 JNA 的资料,基本上都是简单类型的传输,或者结构体,像这种 C++定义的类,要如通过 JNA 来调用呢?如何进行参数的传递?麻烦大神赐教,非常感谢。
1
frienmo 2018-12-04 21:14:20 +08:00
你关键词搜错了吧?应该是 JNI,不是 JNA 吧。
我当时用的是 Swig 从 C++自动生成对应的 Interfaces |