JNA 使用 回调函数

前言

要在 JNA 里使用 回调函数,首先得定义一个 Library 接口,用这个来调用 dll 中的函数,然后还需要一个 Callback 接口,定义回调函数
Native 层也需要有相应的函数定义,具体看下边代码

C 语言代码

#include<stdio.h>

typedef void (*ccback)(char *name);

void test(ccback cc,char* str){
    cc(str);
    puts("output in c");
}

Java ( Kotlin ) 代码

interface Test : Library {
    companion object {
        val INSTANCE: Test = Native.load("a.dll", Test::class.java)
    }

    fun test(callback: LameCallback, str: String)
}

interface LameCallback : Callback {
    fun test(str: String)
}

class LameCallbackImpl : LameCallback {
    override fun test(str: String) {
        println(str)
    }
}

使用方式

JNA 使用 回调函数

运行结果

JNA 使用 回调函数

上一篇:matlab 求单/多元函数极值


下一篇:Kotlin(3)-协程和操作符重载,java技术经理