什么是JNA
- JNA全称Java Native Access,是JNI之外另一个Java访问C++的混编框架
- JNA非Java自带功能,需要导入第三方类库
- JNA只支持Java调用C++,不支持C++调用Java
- JNA对C++代码和编译无特殊要求,普通的C++代码都可调用,非常方便
- JNA直接将dll文件加载为一个接口对象,只要定义一个接口,里面包含和C++同名的方法即可,使用非常方便
- JNA在Java和C++两端编码都十分方便,这正是它流行的原因
- JNA的效率远低于JNI,可达百倍之多,方便的同时带来的必然是性能损失。但是偶尔调用影响并不大,所以它在大多时候仍是首选。在Java和C++互调非常频繁的场景下,应当使用JNI
JNA调用DLL示例
JNA开发包下载地址:Java Native Access 5.5.0
//hello.cpp
#include
extern "C" __declspec(dllexport)
void hello() {
std::cout
关注
打赏