0

我有一个以前编写的 C++ 代码,我想在上面放置一个 Java 用户界面。此 C++ 代码执行三种不同的算法,这些算法需要一些用户定义的数据类型作为输入,并在相同的用户定义参数中传递它们的输出。我需要一个用 JNA(Java Native Access)编写的示例代码,它有两个特点:首先,在一个 dll 中调用多个具有不同名称的函数,其次,为输入和输出传递参数。有人能帮我吗?

4

1 回答 1

0

这是一个指导示例,可帮助您入门。在此代码段中,Java2Win64 是包含要执行的本机代码的 DLL。函数 functionMaryam() 将 1 个参数作为 int 并返回一个 int。易于扩展任何数据类型。

public class JnaExampleMaryam {

// ------------------------------------------
// Java2Win.class
// ------------------------------------------
public interface Java2Win extends Library {
    Java2Win call = (Java2Win) Native.loadLibrary("Java2Win64", Java2Win.class);

    int functionMaryam(int i);
}

// ------------------------------------------

// ------------------------------------------
// Test
// ------------------------------------------
public static void main(final String args[]) throws Exception {
    final File file = new File("rootToDLL", "Java2Win64.dll");
    LibraryLoader.loadLibrary(file);

    int result = Java2Win.call.functionMaryam(42);

}
// ------------------------------------------
}
于 2013-04-02T17:57:00.840 回答