javaがdllを呼び出すと、コールバック関数の実現(jna)
993 ワード
javaがdllファイルを呼び出して、コールバック関数を公開関数のパラメータとして使用する場合、以下の方法で実現します。
まず、c++で定義されているdll公開関数を見ます。
まず、c++で定義されているdll公開関数を見ます。
typedef void (*ccback)(char *name ,int length);
int dllFunction(char *ip, int port, ccback cc);
dllファイルを参照する方法は、もはや説明しなくても、直接にコールバック関数の実現を見て、javaのインターフェースを通じて実現する必要があります。import com.sun.jna.win32.StdCallLibrary.StdCallCallback;
public class dllTest{
public interface ccback extends StdCallCallback {
public void MessageHandle(String name, int length);
}
}
の後、このようなサブクラスを作成し、新しいインターフェースを実現します。public class dllTest{
public static class MessageHandle_Realize implements ccback{
public void MessageHandle(String name, int length) {
//
}
}
}
は、他の方法で方法を呼び出します。public static dllTest.ccback callback = new dllTest.MessageHandle_Realize();
int result = LoadDll.INSTANCE.dllFunction("127.0.0.1", 1234, callback);