使用UnmanagedExports从c#回调到java
我所需要的是java能够将函数传递给c#,c#可以在执行后调用该函数。我该怎么做 下面是来自Java和c#类的两个示例代码片段。这只用于将字符串从java传递到c# 示例c#代码 示例Java代码使用UnmanagedExports从c#回调到java,java,c#,java-native-interface,Java,C#,Java Native Interface,我所需要的是java能够将函数传递给c#,c#可以在执行后调用该函数。我该怎么做 下面是来自Java和c#类的两个示例代码片段。这只用于将字符串从java传递到c# 示例c#代码 示例Java代码 import com.sun.jna.Native; import com.sun.jna.Library; import java.lang.reflect.Method; public class Hello { public static class CallbackWrap
import com.sun.jna.Native;
import com.sun.jna.Library;
import java.lang.reflect.Method;
public class Hello {
public static class CallbackWrap
{
public void Callback(String msg)
{
System.out.println("Call back: " + msg);
}
};
public interface IHello extends Library
{
public String sayHello(String tStr);
public String processAndCallback(Method callback);
};
public static void main(String[] args) {
System.out.println("Hello");
IHello iHello = (IHello)Native.loadLibrary("Hello", IHello.class);//call JNA
System.out.println("Returned: " + iHello.sayHello("Java"));
Class[] parameterTypes = new Class[1];
parameterTypes[0] = String.class;
Method method1 = CallbackWrap.class.getMethod("CallbackWrap::Callback", parameterTypes);
iHello.processAndCallback(method1);
}
}
import com.sun.jna.Native;
import com.sun.jna.Library;
import java.lang.reflect.Method;
public class Hello {
public static class CallbackWrap
{
public void Callback(String msg)
{
System.out.println("Call back: " + msg);
}
};
public interface IHello extends Library
{
public String sayHello(String tStr);
public String processAndCallback(Method callback);
};
public static void main(String[] args) {
System.out.println("Hello");
IHello iHello = (IHello)Native.loadLibrary("Hello", IHello.class);//call JNA
System.out.println("Returned: " + iHello.sayHello("Java"));
Class[] parameterTypes = new Class[1];
parameterTypes[0] = String.class;
Method method1 = CallbackWrap.class.getMethod("CallbackWrap::Callback", parameterTypes);
iHello.processAndCallback(method1);
}
}