码迷,mamicode.com
首页 > 编程语言 > 详细

Java调用dll方法

时间:2021-05-24 16:05:04      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:ring   status   begin   div   java接口   lang   开发人员   sessionid   访问   

使用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);
    }
...

  然后在Java代码中就可以使用了:

int loginCode = MscLibrary.INSTANCE.MSPLogin(null, null, login_params);

Java调用dll方法

标签:ring   status   begin   div   java接口   lang   开发人员   sessionid   访问   

原文地址:https://www.cnblogs.com/webjlwang/p/14784356.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!