jna参数传递问题
我要调用dll检查一个图片是否合格dll中export的方法,没有其他源代码
int __stdcall CheckImage(void* pImage, int nImageSize);
用jna调用该接口
public interface MySDK extends StdCallLibrary {
MySDK INSTANCE = (MySDK) Native.loadLibrary("MySDK",
MySDK.class);
public int CheckImage(Pointer pImage, int nImageSize); // 用哪一个
public int CheckImage(byte[] pImage, int nImageSize); // 用哪一个
}
// 我已经用java读出了图片,形成了一个byte[],该如何调用啊,我现在直接用byte[]当参数,
//
byte[] Image = IOUtils.toByteArray(new FileInputStream(filename));
Memory m = new Memory(Image.length + 1);
m.write(0, Image, 0, Image.length);
m.getPointer(0);
int returnVal2 = MySDK.INSTANCE.CheckImage(m.getPointer(0),Image.length);// 报参数不正确
MySDK.INSTANCE.CheckImage(Image,Image.length) // 也报参数不正确
不知道该怎么整了,求大神帮忙 jna 参数 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 该sdk里,有一个示例,传给CheckImage的参数是一个 std::vector<char> 类型数据的第一个元素的引用
--------------------编程问答-------------------- ,来个神帮忙看看吧 --------------------编程问答--------------------
补充:Java , Java SE