激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java使用JNA(Java Native Access)調用dll的方法

java使用JNA(Java Native Access)調用dll的方法

2019-10-18 13:11java技術網 Java教程

java使用JNA(Java Native Access)調用windows系統的dll文件的例子

JNA(Java Native Access):建立在JNI之上的Java開源框架,SUN主導開發,用來調用C、C++代碼,尤其是底層庫文件(windows中叫dll文件,linux下是so【shared object】文件)。
JNI是Java調用原生函數的唯一機制,JNA就是建立在JNI之上,JNA簡化了Java調用原生函數的過程。JNA提供了一個動態的C語言編寫的轉發器(實際上也是一個動態鏈接庫,在Linux-i386中文件名是:libjnidispatch.so)可以自動實現Java與C之間的數據類型映射。從性能上會比JNI技術調用動態鏈接庫要低。
1.簡單寫個windows下的dll,文件命名為forjava.dll,其中一個add函數,采用stdcall調用約定

復制代碼代碼如下:


main.h文件
#ifndef __MAIN_H__ 
#define __MAIN_H__ 

#include <windows.h> 

/*  To use this exported function of dll, include this header 
 *  in your project. 
 */

#ifdef BUILD_DLL 
    #define DLL_EXPORT __declspec(dllexport) __stdcall 
#else 
    #define DLL_EXPORT __declspec(dllimport) __stdcall 
#endif 

#ifdef __cplusplus 
extern "C"

#endif 

int DLL_EXPORT add(int a,int b); 

#ifdef __cplusplus 

#endif 

#endif // __MAIN_H__

 

main.cpp

#include "main.h" 

// a sample exported function 
int DLL_EXPORT add(int a ,int b) 

    return a+b; 


extern "C" DLL_EXPORT BOOL APIENTRY DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) 

    switch (fdwReason) 
    { 
        case DLL_PROCESS_ATTACH: 
            // attach to process 
            // return FALSE to fail DLL load 
            break; 

        case DLL_PROCESS_DETACH: 
            // detach from process 
            break; 

        case DLL_THREAD_ATTACH: 
            // attach to thread 
            break; 

        case DLL_THREAD_DETACH: 
            // detach from thread 
            break; 
    } 
    return TRUE; // succesful 
}
 


2.將jna.jar導入eclipse工程中,java代碼如下

復制代碼代碼如下:

//import com.sun.jna.Library; cdecl call調用約定 
import com.sun.jna.Native; 
import com.sun.jna.Platform; 
import com.sun.jna.win32.StdCallLibrary; 

public class main { 

    public interface CLibrary extends StdCallLibrary { //cdecl call調用約定時為Library 
        CLibrary INSTANCE = (CLibrary)Native.loadLibrary("forjava",CLibrary.class); 
        public int add(int a,int b); 
    } 

    public static void main(String[] args) { 
        System.out.print(CLibrary.INSTANCE.add(2,3)); 
    } 
}
 

延伸 · 閱讀

精彩推薦
  • Java教程JAVA中通過自定義注解進行數據驗證的方法

    JAVA中通過自定義注解進行數據驗證的方法

    java 自定義注解驗證可自己添加所需要的注解,下面這篇文章主要給大家介紹了關于JAVA中通過自定義注解進行數據驗證的相關資料,文中通過示例代碼介紹...

    Decouple6362021-05-25
  • Java教程JavaWeb 實現驗證碼功能(demo)

    JavaWeb 實現驗證碼功能(demo)

    在 WEB-APP 中一般應用于:登錄、注冊、買某票、秒殺等場景,大家都接觸過這個驗證碼操作,今天小編通過實例代碼給大家講解javaweb實現驗證碼功能,需要...

    java教程網12832020-08-05
  • Java教程Java list.remove( )方法注意事項

    Java list.remove( )方法注意事項

    這篇文章主要介紹了Java list.remove( )方法注意事項,非常簡單易懂,需要的朋友可以參考下...

    妖久9552021-05-25
  • Java教程SpringBoot引入Thymeleaf的實現方法

    SpringBoot引入Thymeleaf的實現方法

    這篇文章主要介紹了SpringBoot引入Thymeleaf的實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下...

    Bobby6472021-07-28
  • Java教程淺談Java(SpringBoot)基于zookeeper的分布式鎖實現

    淺談Java(SpringBoot)基于zookeeper的分布式鎖實現

    這篇文章主要介紹了Java(SpringBoot)基于zookeeper的分布式鎖實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的...

    LJY_SUPER5742021-07-21
  • Java教程Java之Springcloud Feign組件詳解

    Java之Springcloud Feign組件詳解

    這篇文章主要介紹了Java之Springcloud Feign組件詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    深情以改10322021-11-12
  • Java教程java 中鎖的性能提高辦法

    java 中鎖的性能提高辦法

    這篇文章主要介紹了java 中鎖的性能提高辦法的相關資料,需要的朋友可以參考下...

    Java之家3092020-08-13
  • Java教程springboot ehcache 配置使用方法代碼詳解

    springboot ehcache 配置使用方法代碼詳解

    EhCache是一個比較成熟的Java緩存框架,Springboot對ehcache的使用非常支持,所以在Springboot中只需做些配置就可使用,且使用方式也簡易,今天給大家分享spri...

    m1719309529412912021-09-16
主站蜘蛛池模板: 精品999久久久| 少妇一级淫片免费放播放 | 欧美日韩国产成人在线 | 久久国产91| 92看片淫黄大片欧美看国产片 | 精品国产乱码久久久久久丨区2区 | 韩国精品久久久 | 色悠悠久久久久 | 国产自在线 | 日韩黄a| 免费视频91 | 黄色网址免费进入 | av中文字幕免费在线观看 | 久久久久日本精品一区二区三区 | 国产一级一片免费播放 | 久久精品一区二区三 | 日韩午夜一区二区三区 | 黄色大片www | 亚洲婷婷日日综合婷婷噜噜噜 | 777sesese| 亚洲午夜视频在线 | 999精品久久久 | 欧美精品久久久久久久久老牛影院 | xnxx 美女19 | 国内精品国产三级国产a久久 | 精品欧美一区二区精品久久久 | 国产电影av在线 | 天天夜干 | 欧美成年性h版影视中文字幕 | 加勒比婷婷色综合久久 | 欧美老外a级毛片 | 国产午夜电影在线观看 | 看国产精品 | 成人一级黄色大片 | 成人免费在线视频播放 | 亚洲一区在线免费视频 | 亚洲精品com | 护士hd欧美free性xxxx | 国产女同玩人妖 | av电影免费在线 | 美国av片在线观看 |