其他分享
首页 > 其他分享> > JNA 使用 回调函数

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)
    }
}

使用方式

image

运行结果

image

标签:fun,LameCallback,函数,Test,JNA,str,test,回调,String
来源: https://www.cnblogs.com/Hakurei-Reimu-Zh/p/15645048.html