「javajna调用」JNA指令

博主:adminadmin 2022-12-27 19:57:07 65

本篇文章给大家谈谈javajna调用,以及JNA指令对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Java JNA调用dll问题

在eclipse中直接选择项目,把dll文件粘进去,或者可以放在classpath下面,我调用的so文件是放在这个下面的,给spring的配置文件在一个地方,希望可以帮到你

java用jna调用C语言dll接口中的回调函数怎么写

简单的你会写,那就好办,直接上代码

public interface TestAPI extends StdCallLibrary {

    interface LoginReply extends StdCallCallback {

        /**

         * 登录回调

         */

        void invoke(String userId, long retCode, String retMsg);

    }

    /**

     * 注册一个登录回调方法.此方法是dll提供的

     */

    void RegisterLoginReply(LoginReply loginReply);

}

/**

 * 实现登录回调方法

 */

private class LoginReplyCallBack implements TestAPI.LoginReply {

    @Override

    public void invoke(String userId, long retCode, String retMsg) {

        log.info("登录回调方法:{},{},{}", userId, retCode, retMsg);

    }

}

// 设置登录回调

api.RegisterLoginReply(loginReplyCallBack);

java程序需要用jna调用一个***.so文件,我想把这个.so打到jar包里面,以后不需要再单独找,请问有没有办法?

您好,是这样的:

import com.sun.jna.Library;

import com.sun.jna.Native;

public class TestSo {

public interface LgetLib extends Library {

// 调用linux下面的so文件,注意,这里只要写test就可以了,不要写libtest,也不要加后缀

LgetLib INSTANCE = (LgetLib) Native.loadLibrary("test",LgetLib.class);

int add(int a,int b);

}

public int add(int a,int b){

return LgetLib.INSTANCE.add(a,b);

}

public static void main(String[] args) {

TestSo ts = new TestSo();

int c = ts.add(10,20);

System.out.println("10+20="+c);

}

}

java 通过jna调用so文件,导出函数返回类型为接口类的要怎么调用

这个在网上有很多例子的。 char* outputData 参数对应 java中的应该是jstring或是jbyte[],本地代码中在返回前,生成java类型数据赋值给这个参数才可以。

关于javajna调用和JNA指令的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-27,除非注明,否则均为首码项目网原创文章,转载请注明出处。