jna调用windows api

本文介绍如何利用Java Native Access (JNA) 库来调用本地系统的两个常用函数:GetLogicalDriveStringsA(获取逻辑盘符)和GetSystemDirectoryA(获取系统目录)。通过示例代码展示了具体的调用过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在我接触JNA之前一直以为调用本地链接库函数的时候一定要借助JNI或者SWT来实现,一日中无意看到JNA,发现它也可以实现这类调用,于是下回来按网站上的例子试试了 还不错,因此还有点兴趣了,于是又自己写了 2个发挥了一下。

GetLogicalDriveStringsA【获取本地系统逻辑盘符】

GetSystemDirectoryA 【获取系统目录】

public interface Kernel32 extends Library {

    Kernel32 INSTANCE = (Kernel32) Native.loadLibrary("kernel32", Kernel32.class);
  int GetLogicalDriveStringsA(int length,byte[] buffer);
    int GetSystemDirectoryA(byte[] buffer,int size);
}
 调用的方式为:

public class MainDemo ...{

    public static void main(String[] args) ...{
        Kernel32 lib = Kernel32.INSTANCE;
        byte[] buffer2=new byte[100];
        lib.GetLogicalDriveStringsA(buffer2.length/2,buffer2);
               for(byte bt : buffer2)
       ...{
            System.out.print((char)bt);
       }
         System.out.println();

        byte[] buffer = new byte[50];

 lib.GetSystemDirectoryA(buffer, 50);
          for(byte bt : buffer)
       ...{
            System.out.print((char)bt);
       }


}


}

本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/zhangjianying/archive/2008/01/25/2064911.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值