サードパーティの dll で定義された ac 関数を使用する必要があります
__declspec(dllimport) Init(DWORD id,HANDLE* handle);
JNAerate は、以下のメソッド シグネチャを生成するのに十分親切でした....
public static native int Init(int id,PointerByReference handle);
そして、それを次のように使用します
public interface Dll extends Library
{
public Dll _dll = (Dll)Native.LoadLibrary("dll_name");
public int Init(int id,PointerByReference handle);
}
public void init()
{
long hwnd = 0;
LongByReference lbr = new LongByRefrence(hwnd);
PointerByReference pbr = new PointerByReference();
pbr.setPointer(lbr.getPointer());
int ret = _dll.init(0x01,pbr);
}
しかし、これはJVMをクラッシュさせます..JNAでボイド**をマップする適切な方法を教えてください。