java调用dll文件需要使用回调函数作为公开函数的参数时,用以下方法实现:
首先,看c++中定义的dll公开函数:
typedef void (*ccback)(char *name ,int length);
int dllFunction(char *ip, int port, ccback cc);
引用dll文件方法不再赘述,直接看回调函数的实现,需要通过java的接口实现:
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Callback;
import com.test.DllCallBackTest.JnaCallBackDll.SCBack_Impl;
public class DllCallBackTest {
public interface JnaCallBackDll extends Library {
public static JnaCallBackDll instance = (JnaCallBackDll) Native.loadLibrary("src/main/resources/Dll2.dll",
JnaCallBackDll.class);
int dllFunction(String host, int port, Callback callback);
public interface SCBack extends Callbac