Java调用dll方法
使用JNA框架比用原来JNI要方便多了,对于DLL不需要额外的包装,直接就能够使用:
1.JNA框架
a. 定义:JNA(Java Native Access)框架是一个开源的Java框架,是SUN公司主导开发的,建立在经典的JNI的基础之上的一个框架
b. 作用:JNA提供一组Java工具类用于在运行期动态访问系统本地库(native library:如Window的dll)而不需要编写任何Native/JNI代码。开发人员只要在一个java接口中描述目标native library的函数与结构,JNA将自动实现Java接口到native function的映射。
c. 导入maven依赖
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.5.0</version>
</dependency>
2.调用科大讯飞windows api的方法
public class XunfeiSpeech {
public interface MscLibrary extends Library {
// DLL文件默认路径为项目根目录,若DLL文件存放在项目外,请使用绝对路径
MscLibrary INSTANCE = Native.load("D:\\app\\yuyinhecheng\\bin\\msc_x64", MscLibrary.class);
int MSPLogin(String username, String password, String param);
int MSPLogout();
String QTTSSessionBegin(String params, IntByReference errorCode);
int QTTSTextPut(String sessionID, String textString, int textLen, String params);
Pointer QTTSAudioGet(String sessionID, IntByReference audioLen, IntByReference synthStatus, IntByReference errorCode);
int QTTSSessionEnd(String sessionID, String hints);
}
}
3. Java代码中使用
int loginCode = MscLibrary.INSTANCE.MSPLogin(null, null, login_params);
欢迎一起来学习和指导,谢谢关注!
本文来自博客园,作者:xiexie0812,转载请注明原文链接:https://www.cnblogs.com/mask-xiexie/p/16877699.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了