我是JNA基础结构的新手,但我想主要的是,我有一些库“ someLib”,并且创建了一个Java接口来匹配它。然后我可以“使用”它正确吗?

但是问题是我不确定我需要模拟什么,特别是有些类需要我的功能。

可以说我的C ++库有一个“ AdvancedString”对象-内部使用其他一些类。

意思是这样的:

class B { ... };

class AdvancedString {
  private:
    B b;

  public:
    AdvancedString doSomething () { ... }

};


而且我需要能够在Java代码中说出AdvancedString.doSomething()并使其起作用。这意味着我需要为AdvancedString类创建一个接口?

public interface AdvancedStringInterface extends StdCallLibrary {
  public AdvancedStringInterface doSomething ();
}


看起来合理吗?还是我错过了一些东西。感谢您提供的任何见解!

最佳答案

JNA将帮助您访问C函数和数据。一种选择是在C API中公开您的C ++功能。

如果要访问许多C ++类,SWIG是更合适的选择。它可以为您的C ++类创建Java包装器。它非常强大,但是有一个学习曲线。

关于java - 自定义库的JNA,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4466302/

10-10 12:34