现在需要使用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();
}
调用是可以成功的,但是我获取到了方法的返回值,是个Pointer类型,我怎么才能把他给恢复成一个接口对象来让我调用呢,去调用ISample里声明的那些方法呢?这个ISample是需要做类型映射吗?代码得怎么写?