久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

向 JNA Class Java (Kernel32) 添加另一種方法

Adding another method to JNA Class Java (Kernel32)(向 JNA Class Java (Kernel32) 添加另一種方法)
本文介紹了向 JNA Class Java (Kernel32) 添加另一種方法的處理方法,對大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我試圖使用來自 WIN32 dll 的方法,但 JNA 中沒有.

I was trying to use a method from WIN32 dll, not included in JNA.

方法是GetProductInfo

我在單獨(dú)的項(xiàng)目和工作中嘗試這個:

I try this in separate project and work:

  public interface Kernel32 extends Library {
    public boolean GetProductInfo(int dwOSMajorVersion,int dwOSMinorVersion,
        int dwSpMajorVersion, int dwSpMinorVersion, IntByReference pdwReturnedProductType);
  }  

使用..

    Kernel32 lib = (Kernel32) Native.loadLibrary("kernel32", Kernel32.class);
    IntByReference dwType = new IntByReference();
    lib.GetProductInfo(6,0,0,0,dwType);
    switch (dwType.getValue()) {
    // Something
    }

但我需要使用 JNA

import com.sun.jna.platform.win32.Kernel32;
import com.sun.jna.platform.win32.User32;
import com.sun.jna.platform.win32.WinBase;
import com.sun.jna.platform.win32.WinDef;
import com.sun.jna.platform.win32.WinNT;
import com.sun.jna.platform.win32.WinUser;

  public interface Kernel32 extends Library {

    Kernel32 INSTANCE = (Kernel32)Native.loadLibrary("kernel32", Kernel32.class);
    // I need to insert this method!!!
    public boolean GetProductInfo(int dwOSMajorVersion,int dwOSMinorVersion,
        int dwSpMajorVersion, int dwSpMinorVersion, IntByReference pdwReturnedProductType);

    // This snippet I think should not Needed, 
    //but if I remove this code this methods will not be recognized
    //but if I leave this code, it is not working properly!!!
    public void GetSystemInfo(WinBase.SYSTEM_INFO lpSystemInfo);
    public boolean GetVersionExA(WinNT.OSVERSIONINFOEX lpVersionInfo);
    public boolean GetVersionExA(WinNT.OSVERSIONINFO lpVersionInfo);
  }

使用代碼:

  WinNT.OSVERSIONINFOEX osviex = new WinNT.OSVERSIONINFOEX();
  WinNT.OSVERSIONINFO osvi = new WinNT.OSVERSIONINFO();
  WinBase.SYSTEM_INFO si = new WinBase.SYSTEM_INFO();
  String major = "", sub = "";
  boolean bOsVersionInfoEx = Kernel32.INSTANCE.GetVersionExA(osviex);
  boolean bOsVersionInfo = Kernel32.INSTANCE.GetVersionExA(osvi);
  Kernel32.INSTANCE.GetSystemInfo(si);

  // If I declare newly (the old methods), these will not work fine (Bad result)!!! 
  System.out.println("osviex.dwPlatformId.intValue()"+osviex.dwPlatformId.intValue());
  System.out.println("osviex.dwMajorVersion.intValue()"+osviex.dwMajorVersion.intValue());
  System.out.println("osvi.dwPlatformId.intValue()"+osvi.dwPlatformId.intValue());
  System.out.println("osvi.dwMajorVersion.intValue()"+osvi.dwMajorVersion.intValue());

我需要這個方法的結(jié)果!!!

I need the result of this method!!!

  IntByReference dwType = new IntByReference();
  Kernel32.INSTANCE.GetProductInfo(6,0,0,0,dwType);
  switch (dwType.getValue()) {
  //... code
  }

如何在 Kernerl32 中包含一個新方法(已在 JNA -> com.sun.jna.platform.win32.Kernel32 中定義)?

推薦答案

這是擴(kuò)展 JNA 平臺映射定義的庫的方式:

This is how you extend a library defined by JNA's platform mappings:

public interface Kernel32 extends com.sun.jna.platform.win32.Kernel32 {
    Kernel32 INSTANCE = (Kernel32)Native.loadLibrary("kernel32", Kernel32.class, com.sun.jna.win32.W32APIOptions.DEFAULT_OPTIONS);

    boolean GetProductInfo(int dwOSMajorVersion, int dwOSMinorVersion, int dwSpMajorVersion, int dwSpMinorVersion, IntByReference pdwReturnedProductType);
}

這篇關(guān)于向 JNA Class Java (Kernel32) 添加另一種方法的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

How to wrap text around components in a JTextPane?(如何在 JTextPane 中的組件周圍環(huán)繞文本?)
MyBatis, how to get the auto generated key of an insert? [MySql](MyBatis,如何獲取插入的自動生成密鑰?[MySql])
Inserting to Oracle Nested Table in Java(在 Java 中插入 Oracle 嵌套表)
Java: How to insert CLOB into oracle database(Java:如何將 CLOB 插入 oracle 數(shù)據(jù)庫)
Why does Spring-data-jdbc not save my Car object?(為什么 Spring-data-jdbc 不保存我的 Car 對象?)
Use threading to process file chunk by chunk(使用線程逐塊處理文件)
主站蜘蛛池模板: 91在线| 国产电影一区二区三区爱妃记 | 国产精品高潮呻吟 | 日韩在线精品 | 日产精品久久久一区二区福利 | 中文字幕一区二区三区四区 | 亚洲欧洲精品成人久久奇米网 | 一区二区三区欧美 | 中文字幕日本一区二区 | 美日韩一区二区 | 天天av综合 | av特级毛片| 国产在线观看福利 | 国产成视频在线观看 | 精品久久一区 | 亚洲欧美日韩精品久久亚洲区 | 一级欧美一级日韩片 | 中文亚洲视频 | 国产伦精品一区二区三区精品视频 | 国产91在线 | 中日 | 精品中文字幕视频 | 九九精品视频在线 | 999国产精品视频免费 | 人成久久 | 5060网一级毛片 | 亚洲免费在线 | 精品欧美一区二区精品久久久 | 久久久免费 | 久久精品免费观看 | 亚洲免费精品 | 精品欧美一区二区在线观看 | 国产精品久久9 | 久久99久久98精品免观看软件 | 北条麻妃一区二区三区在线观看 | 久久久精品视频免费 | 九九导航 | 国产麻豆乱码精品一区二区三区 | 久久亚洲视频 | 三级在线免费观看 | 成人精品一区亚洲午夜久久久 | 国产一二区视频 |