java调用c写的dll jna_jna调用c编写的dll
我们团队目前开发的产品是用java语言编写的,大家都知道,java编写的代码随便都可以被反编译,导致别人可能会看到你“裸奔”的样子。所以,为了避免这种安全隐患,团队最终商定,将部分核心代码改用c语言编写,封装为dll,再由java调用。
于是乎,我们就开始jna初探。今天通过各种百度,终于做了个例子出来,在此做个记录,以备后路之需。
1、构造一个dll
由于本机的vs2015没有安装c++模块,所以采用Dev-C++开发,具体步骤如下:
1.1、新建项目,选择DLL,C项目
1.2、删除自动生成的代码文件,编写一个简单的函数
1.3、编译项目,生成dll
2、通过jna调用dll
2.1、在java项目中加入jna依赖
com.sun.jna
jna
3.0.9
2.2、编写调用类
public class DllTest {
public interface CLibrary extends Library {
CLibrary INSTANCE = (CLibrary) Native.loadLibrary("cDll2", CLibrary.class);
String hello();
}
public static void main(String[] args) {
String result = CLibrary.INSTANCE.hello();
System.out.println(result);
}
}
注意:dll可以使用绝对路径
到此,样例代码编写完成,一个简单的dll,一个简单的jna调用,欧了。
---------------------
作者:tobearc
来源:CSDN
原文:https://blog.csdn.net/tobearc/article/details/87215315
版权声明:本文为博主原创文章,转载请附上博文链接!
java调用c写的dll jna_jna调用c编写的dll相关推荐
- python调用自己写的函数_python调用自定义函数的实例操作
在python中,想要调用自定义函数必须先声明,然后才能调用.使用函数时,只要按照函数定义的形式,向函数传递必需的参数,就可以调用函数完成相应的功能或者获得函数返回的处理结果. (1)声明函数 pyt ...
- java com dll_通过COM组件方式实现java调用C#写的DLL文件
通过Java调用C#的DLL文件实现.网上资料很多,自己整合总结了一下,做个备忘. 一.C#写com组件 开发环境 VS2013 1.新建工程:TestDemo(类库项目) //根据自己需要取 ...
- java 调用.net类库_通过COM组件方式实现java调用C#写的DLL文件
通过Java调用C#的DLL文件实现.网上资料很多,自己整合总结了一下,做个备忘. 一.C#写com组件 开发环境 VS2013 1.新建工程:TestDemo(类库项目) //根据自己需要取 ...
- 易语言如何调用c dll文件,易语言调用C++写的DLL
直接调用会弹出堆栈错误的信息,原因是VS默认是__cdcel方式,而易语言是__stdcall,所以调用约定不一致导致堆栈错误. 解决方案很简单,易语言声明DLL函数时"在库中对应命令名&q ...
- android调用 qt so文件路径,Android Java调用Qt写的so库
有时候,我们反编译apk得到一个so库,如果直接使用这个so库的话,必须使用原来so库同样的package名字,才能用.这样人家反编译你的apk,就知道你侵犯了人家的版权.为了达到混淆的目的,我们可以 ...
- java Jacob调用VB编写的DLL(COM组件)
项目上有调用Visual Basic 6.0编写的DLL文件的需求,在使用JNA调用无果后,在网上找了部分资料,整理如下. 为什么用JNA无法调用? VB生成的COM组件,虽然是dll后缀,但事实上, ...
- QT调用C#写的Dll
QT调用C#写的Dll 参见: https://blog.csdn.net/weixin_42420155/article/details/81060945 C#写的dll是没有dllMain入口函数 ...
- 关于 调用 JNI JAR java 的说明和注意事项,调用第 靠写不下了
关于 调用 JNI JAR java 的说明和注意事项,调用第 靠写不下了
- c++调用c#写的DLL
c++调用c#写的DLL: 此文章演示了建立c#的dll: c++建立工程,引入dll: 不能解决的问题: 指定dll的路径,在代码里面直接写 #using "xxx.dll" 必 ...
最新文章
- jQuery日期和时间插件(jquery-ui-timepicker-addon.js)中文破解版使用
- 使用Hexo在Github搭建静态博客
- Python开发服务器巡检系统,东拼西凑用python脚本登录web管理页面做巡检(未实现)...
- Informatica PowerCenter使用介绍-转载
- 自适应滤波器_有源电力滤波器的使用意义和作用
- [蓝桥杯][算法训练VIP]旅行家的预算(单调栈+贪心)
- LeetCode 2140. 解决智力问题(动态规划)
- 程序员专属精品简历合集—面试必备
- python有什么用途视频_使用Python管理多平台视频流的最佳方法是什么?
- 免费json客户端解析
- jQuery.treetable使用及异步加载
- python实例属性与类属性_Python 面向对象编程:类的创建与初始化、实例属性与方法、类属性与方法...
- 用批处理启动常用服务
- S太赞了!大佬竟然用ELK搭建起了支撑TB级的日志监控系统...
- 云计算基础概念 笔记
- ImportError: cannot import name ‘abs‘
- 酵素果冻在快手火了!三个品牌单品一周卖出5000万背后的秘密是什么?
- 联想小新pro13关闭自动调节亮度
- android删除本地图片,Android中结合contentResolver.delete和file.delete实现本地图片的删除...
- matplotlib之pyplot模块之标题(title()和suptitle())