当前位置:编程学习 > JAVA >>

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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,