【JNA】JAVA调用JNA
使用JNA调用C/C++动态链接库dll
参考视频:
GITHUB repository:
- java-native-access/jna: Java Native Access (github.com)
- repository:Copy2000/JNA_use: 使用JNA调用c++的类和函数 (github.com)
准备
- 下载JNA和JNA Platform。


- 下载Code,可以使用SSH,更加快,但是我使用了VPN了,所以直接下载压缩包。

-
VScode安装JAVA扩展
-
Extension Pack for JAVA(好像是6合1)
-
JAVA Development Kit
- 下载java
- 把下载的java添加到系统变量(2处)



-
cmd 运行
java -version -
vscode 在工作区设置setting.json

-
检验
public class hello { public static void main(String[] args){ System.out.println("Hello World!"); } }
-
-
上面介绍了用vscode安装java插件,接下来介绍eclipse,嘻嘻,专业的东西用专业的IDE。vscode,太难了。
- 安装eclipse。
- JDK的安装和上面类似。
JNA的应用
在Windows中的Preferences中选择Build Path下的User Library
添加之前在github下载的三个文件。
之后在文件夹
,右键点击Build Path下面的Add Library选中我们添加的JNA。
按住ctrl+click你想看到的函数源码,之后点击attach...的button,添加之前在github下载的zip文件,就可以看到源码了。

在vs studio中创建dll
主要使用的是testDLL.h和testDLL.cpp文件,相关的API和example在文件中已经给出。
在testDLL.cpp中写源文件,在testDLL.h定义

extern “C”是为了避免重载。
生成解决方案:

在DeBug文件下面找到testDLL.dll
把dll文件放到
新建接口interface;
实例化interface:Mydll mydll = (Mydll)Native.load("testDLL",Mydll.class);
其中“testDLL”是testDLL.dll

jna数据类型对应。 JNA数据类型的对应以及使用_江南老画船的博客
真正的应用
好了好了,不隐藏了,上面都是老子踩的坑,接下来才是正题。
资料【C++】JAVA使用JNA调用C++动态库DLL_哔哩哔哩_bilibili
-
下载IntelliJ IDEA
-
把debug改成release

-
如果想要输出中文,要使用u8

-
添加jna的库

-
添加interface并且实例化

-
调用


浙公网安备 33010602011771号