关于这个的流程,我是这么理解的,
(1) 先写一份Java的要求清单
(2) 然后交由C++去实现
(3) C++实现 以后再转交给java核验
目录
一、生成一份要求清单
二、将清单交给C++去实现
1、新建一个C++工程
2、添加搜索路径
3、设置项目上下文(很重要)
4、编写项目文件
三、java检验C++实现的内容
一、生成一份要求清单
首先我们用java写一份“要求清单”,即创建一个java类
写好以后,现在我们要把清单转变成C++认识的模样,即.h文件
找到CallCProgram.java在文件夹中的位置
并在上面路径的开头输入 cmd,这样的话,进入命令行以后就可以直接跳转到这个路径了
javac -h ./ CallCProgram.java
注意: 使用的java只要是一个普通类就可以,不需要加任何注解,不然反倒会出现一些奇怪的错误
二、将清单交给C++去实现
1、新建一个C++工程
由于java要求我们生成的库是Dll2.dll,所以我们新建的工程名就叫 Dll2
2、添加搜索路径
连接java和C++之间的关键就是jni.h文件,jni.h文件又需要用到jni_md.h文件,这两个文件在jdk的安装路径下,如果不知道在哪,可以使用everything查找
jni_md.h在上图的win32文件中
我们把这两个文件所在的路径添加到项目包含的目录下
右键点击项目,属性——VC++目录——包含目录,加入路径
D:\Download\JDK\sdk_install\include\win32
D:\Download\JDK\sdk_install\include
3、设置项目上下文(很重要)
小编使用的IDEA是64位平台,VS生成DLL库却是32位的,所以为了避免平台不兼容,这里最设置一下
点击配置管理器
将项目上下文改为64位的
4、编写项目文件
新建两个文件分别是 PrintWord.h 和 PrintWord.cpp,将第一步生成的.h文件放到 PrintWord.cpp同级目录下
========================PrintWord.h ========================
需要注意的是,函数声明已经由java帮我们制定了,我们打开第一步生成的 .h 文件
所以我们直接拿来使用即可
========================PrintWord.cpp ========================
pch.h文件是项目工程被创建的时候,就已经存在了
接下来右键一键生成即可
三、java检验C++实现的内容
我们在 项目中的的debug文件下找到 Dll2.dll文件,我们把这个文件加入到IDEA安装目录下的bin文件中,小编这里的路径是 D:\Download\IDEA\IDEA2022\bin
然后回到IDEA开始运行最开始的程序
注意:如果在生成动态库的过程中,引入了其他第三方库,需要将其他第三方库的dll文件也加入到IDEA安装路径下的bin目录中。