JNI学习(2)——生成动态链接.dll文件

简介: JNI学习(2)——生成动态链接.dll文件

一、 软件版本


  • JDK8
  • OS:Windows10
  • IDE: Code::Blocks 20.03


二、新建动态链接项目


1666147375013.jpg


三、复制JNI相关的头文件


JNI相关的头文件有2个,分别是jni.hjni_md.h,分别位于JDK\include文件夹、JDK\include\win32文件夹中。

1666147408445.jpg

1666147423046.jpg


将上一篇博客生成的.h文件及上述两个JNI头文件添加到项目中

1666147456945.jpg


四、编写头文件对应的源文件


#include "JniHelloWorld.h"
#include "jni.h"
JNIEXPORT void JNICALL Java_cn_hangtian_com_modular_web_utils_JniHelloWorld_printHelloWorld
  (JNIEnv * env, jobject job, jstring prompt){
    const char *str = env->GetStringUTFChars(prompt, 0);
  printf("%s", str);
  env->ReleaseStringUTFChars(prompt, str);
}

五、构建整个项目,从生成.dll

1666147493666.jpg

点击项目构建按钮,生成.dll文件

1666147508251.jpg

相关文章
|
NoSQL MongoDB
12 MongoDB - 数据查询(消除重复)
12 MongoDB - 数据查询(消除重复)
549 0
|
存储 SQL 关系型数据库
创建并配置RDS实例
在阿里云上创建RDS实例涉及登录控制台、进入RDS管理页面、创建实例、选择数据库引擎和版本、配置实例规格与存储、设定网络与安全组、设置实例信息、确认订单并支付,最后初始化数据库。操作步骤可能因界面更新或数据库引擎不同略有差异。
607 1
|
Oracle 关系型数据库 Go
【开发工具】解决 Goland 报错:Found several packages [main, xxx] in ...
【开发工具】解决 Goland 报错:Found several packages [main, xxx] in ...
2058 0
【开发工具】解决 Goland 报错:Found several packages [main, xxx] in ...
|
存储 算法 数据安全/隐私保护
【密码学】一文读懂白盒AES(Chow方案)(一)
本文主要参考了文献^[1], 代码参考了^[2], 这里感谢文献作者和代码作者,如果有能力的大佬,可以自行查看原文献,个人水平有限,有哪里写的不对的地方,也欢迎读者指正。
4799 0
【密码学】一文读懂白盒AES(Chow方案)(一)
|
24天前
|
小程序 JavaScript 关系型数据库
基于微信小程序的民宿预定系统
本项目设计并实现基于微信小程序的民宿预订管理系统,结合MySQL、Vue、Django等技术,整合民宿资源,优化预订流程,提升用户与经营者效率,推动民宿行业信息化发展。
|
12月前
|
机器学习/深度学习 数据采集 人工智能
AI在用户行为分析中的应用:实现精准洞察与决策优化
AI在用户行为分析中的应用:实现精准洞察与决策优化
1571 15
|
Arthas 监控 Java
JVM内存问题之使用gperftools分析JNI Memory泄漏的具体步骤是什么
JVM内存问题之使用gperftools分析JNI Memory泄漏的具体步骤是什么
409 2
|
移动开发 网络协议 算法
(十)Netty进阶篇:漫谈网络粘包、半包问题、解码器与长连接、心跳机制实战
在前面关于《Netty入门篇》的文章中,咱们已经初步对Netty这个著名的网络框架有了认知,本章的目的则是承接上文,再对Netty中的一些进阶知识进行阐述,毕竟前面的内容中,仅阐述了一些Netty的核心组件,想要真正掌握Netty框架,对于它我们应该具备更为全面的认知。
811 2
|
数据采集 JavaScript Java
CompletableFuture异步编排,你还不会?
本文介绍了同步与异步编程的概念,探讨了在复杂业务场景中使用异步编排的重要性。通过对比 `Future` 与 `CompletableFuture`,详细讲解了 `CompletableFuture` 的多种方法,如 `runAsync`、`supplyAsync`、`whenComplete`、`exceptionally` 等,并展示了如何通过 `CompletableFuture` 实现异步任务的组合与异常处理。最后,通过实战案例演示了如何利用线程池与 `CompletableFuture` 优化商品详情页的查询效率,显著减少响应时间。
462 3
CompletableFuture异步编排,你还不会?
|
机器学习/深度学习 人工智能 运维
智能化运维:未来技术趋势与挑战
随着信息技术的飞速发展,智能化已成为推动运维领域进步的重要力量。本文将深入探讨智能化运维的核心技术、面临的挑战以及未来的发展趋势。通过分析当前运维自动化的实践案例和智能算法的应用,揭示智能化运维如何优化系统性能、提高资源利用率,并预测其对未来IT基础设施的影响。文章旨在为读者提供对智能化运维全面而深入的理解,并为运维专业人士指出未来发展的方向。
558 0

热门文章

最新文章