java调用C++dll

公司有个项目,需要用到加密和校验,不知道公司的大神从哪旮旯里找到了非通用的算法(C语言),常规算法都对不上,但数据要通讯,项目要做呀,我有点qt基础,也仅仅是有点。他的算法是C写的,将他的算法改写成java,我有困难,就将他的代码打成dll,放到java中调用好了。

1\java中创建本地接口
在这里插入图片描述
2\由java.class生成.h文件
普通项目在bin中运行 javah javadll.device.CallDll
Maven项目在classes中运行(其他地方试了,不成功,又找到好方法的请告诉我)
在这里插入图片描述
3\创建dll文件
在这里插入图片描述

其他的真不好使其他的真不好使
去掉 call.pro文件中gui ,不去会报错的.
在这里插入图片描述
3\将生成的javadll_device_CallDll.h, jdk目录下include目录中的jni.h, include文件夹中win32中的jni_md.h文件
全部添加进C++的程序中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将javadll_device_CallDll.h中的JNIEXPORT jint JNICALL Java_javadll_device_CallDll_add
(JNIEnv *, jobject, jint, jint);函数复制到call.cpp中,这个函数就是对应CallDll.java中的 public native int add(int a ,int b);
在这里插入图片描述
在call.cpp中添加相应的程序
在这里插入图片描述
选择call项目,右键,qmak,重新构建,找到生成的dll (路径在左边框,项目一栏中有)
在这里插入图片描述
将这个文件拷入eclipse的项目中
在这里插入图片描述
在这里插入图片描述
我写这些博客很大一部分是因为,我怕我有一天我自己忘了。找起来麻烦。
java源码及qt源码
https://download.csdn.net/download/xy3233/10788250

猜你喜欢

转载自blog.csdn.net/xy3233/article/details/84135296
今日推荐