JNA:在单个Dll中存在多个类时访问静态方法

时间:2015-07-03 10:43:33

标签: java jna nativelibrary

我已经按照下面的基本方案实现了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调用。

0 个答案:

没有答案