javaがdllを呼び出すと、コールバック関数の実現(jna)


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.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);