java 調用 dll demo解析


從網絡上搜索資料和參考后,決定使用JNA(另有jni,jnavitate);

注意點:

1. 32位jdk對應32位dll(包含其自身依賴dll),64位對應64位

2. 引入JNA依賴jar包,放置入口dll於項目根目錄處

3. 所調dll方法與java對應的數據類型匹配(重要),不匹配會導致中斷,或結果不正確;

   --數據類型也不算太多,試試基本就出來了,而且一般dll接口會告訴你對應的數據類型,只需要找到對應的java類型即可。

public interface Dll extends Library {

        public int GetRead(String src, byte[] dest);
    }

    public static void main(String[] args) {
        Dll instance = (Dll) Native.loadLibrary("E:\\luna\\dll\\CSDataIntf.dll", Dll.class);

        if (instance != null) {
            String src = "00000000003501000420180";
            byte[] dest = new byte[1000];
            int res = instance.GetRead(src, dest);
             
            try {
                String res11 = new String(dest,"UTF-8");
                System.out.println(res11);
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
        }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM