Java中调用dll动态库的简洁方法

本文介绍了如何在Java中使用JNative库调用dll动态库,包括将JNativeCpp.dll放入系统目录,导入JNative.jar,并提供了一个简单的调用User32.dll中MessageBoxA方法的例子。同时,还提到了在Linux环境下使用libJNativeCpp.so的注意事项和编译方法。
摘要由CSDN通过智能技术生成

  解压JNative-1.3.2.zip 获得三个文件,分别是:JNativeCpp.dll,libJNativeCpp.so,JNative.jar 。JNativeCpp.dll Windows下用的,拷到windows / system32目录下;

  libJNativeCpp.so Linux下使用的;

  JNative.jar 这是一个扩展包,加载到你的程序中就可以。

  一个简单例子

  import org.xvolks.jnative.JNative;

  import org.xvolks.jnative.Type;

  import org.xvolks.jnative.exceptions.NativeException;

  public class JNativeTest {

  public static final int messageBox(int parentHandle, String message,

  String caption, int buttons){// throws NativeException, IllegalAccessException {

  JNative n = null;

  try {

  n = new JNative("User32.dll", "MessageBoxA"); //“.dll”不用也可以, 常量DLL_NAME的值为User32.dll

  // 构造JNative时完成装载User32.dll,并且定位MessageBoxA方法

  n.setRetVal(Type.INT); // 指定返回参数的类型

  int i = 0;

  n.setParameter(i++, Type.INT, "" + parentHandle);

  n.setParameter(i++, Type.STRING, message);

  n.setParameter(i++, Type.STRING, caption);

  n.setParameter(i++, Type.INT, "" + buttons); // 指定位置上的参数类型和值

  n.invoke(); // 调用方法

  return Integer.parseInt(n.getRetVal());

  }

  catch(Exception ex){

  ex.printStackTrace();

  }

  finally {

  if (n != null)

  try {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值