jnative调用dll

mcwitten 2012-10-18 10:04:07
请赐教:
jnative是如何调用动态连接库dll的回调函数的呢?希望各位兄弟姐妹们不吝赐教。谢谢。
...全文
136 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhang2520 2012-10-18
  • 打赏
  • 举报
回复
给你一个调用DLL 方法的示例:
public static synchronized String GetPeopleName() {
JNative n = null;
try {
String retstr = "";
//动态库名:Termb.dll, 方法名:GetPeopleName(char *strTmp, int *strLen);
n = new JNative("Termb.dll", "GetPeopleName");
n.setRetVal(Type.INT); // 指定返回参数的类型
Pointer a = new Pointer(MemoryBlockFactory.createMemoryBlock(4 * 10)); //strLen 姓名长度
Pointer b = new Pointer(MemoryBlockFactory.createMemoryBlock(4 * 30)); //strTmp 姓名
n.setParameter(0, b);
n.setParameter(1, a);
n.invoke();
byte[] by = new byte[120];
by = b.getMemory();
retstr = new String(by);

byte[] bt = new byte[40];
bt = a.getMemory();

a.dispose();
b.dispose(); //释放
return retstr.trim(); //返回值
}catch(Exception e){
e.printStackTrace();
LogInit.write("读取失败",e);
return "";
}
}
zxhcloth 2012-10-18
  • 打赏
  • 举报
回复
jna算是比较偏门的问题,用的人少之又少。
mcwitten 2012-10-18
  • 打赏
  • 举报
回复
谢谢朋友们的回答。其实我想要请教的是jnative调用dll的回调函数

51,409

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧