我已经按照下面的基本方案实现了JNA的本机函数调用,它按预期工作:
/* HelloWorld.java */
import com.sun.jna.Library;
import com.sun.jna.Native;
public class HelloWorld {
public interface CTest extends Library {
public void helloFromC();
}
static public void main(String argv[]) {
CTest ctest = (CTest) Native.loadLibrary("ctest", CTest.class);
ctest.helloFromC();
}
}
现在我有多个类的dll,每个类都有一些静态方法。我有一个C#的例子,但我找不到从Java调用这些方法的方法:
以下是C#代码示例:
//Assembly Test.CommonLibrary.dll
using System;
namespace Test.CommonLibrary
{
public class Parameters
{
public Parameters();
public static bool bGetParam(string paramName, bool paramDefault = false);
public static void vSetParam(string paramName, bool paramDefault);
}
}
在C#代码中的用法:
var bPrm = Parameters.bGetParam("ParameterName", false);
使用JNA调用bGetParam方法的任何建议。我没有调用INSTANCE.method,而是需要INSTANCE.Class.Method调用。