小编Jen*_*ens的帖子

如何使用JNA创建同一个库的多个实例?

我有一个Java Native Access的问题:我有一个带有一个函数的C库,让我们说foo().这个函数有一个内存 - 一个计数器 - 每次调用都会增加.是否可以在同一个java进程中创建此库的两个实例,以便计数器是独立的?

非常感谢你.

这是一些代码:

public class A
{

    public static class Lib
    {
        NativeLibrary libInstance = NativeLibrary.getInstance("myLibrary");
        Function fn = lib.getFunction("foo");
    }

    private Lib lib = new Lib();

    public foo()
    {
        lib.fn.invoke(new Object[] {});
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我打电话:

A a = new A();
A b = new A();

a.foo(); // >1
a.foo(); // >2
b.foo(); // >3
a.foo(); // >4
b.foo(); // >5
a.foo(); // >6
Run Code Online (Sandbox Code Playgroud)

但我想让a和b独立于图书馆工作:

a.foo(); // >1
a.foo(); // >2
b.foo(); // >1 …
Run Code Online (Sandbox Code Playgroud)

java jna libraries

7
推荐指数
1
解决办法
1165
查看次数

标签 统计

java ×1

jna ×1

libraries ×1