JNA用于自定义库

时间:2010-12-16 23:15:50

标签: java c++ jna

我是JNA基础架构的新手,但我认为要点是我有一些库“someLib”,我创建了一个java接口来匹配它。然后我可以“正确”使用它吗?

但问题是我不确定我需要嘲笑什么,特别是有一些我需要的功能。

让我们说我的C ++ lib有一个'AdvancedString'对象 - 在内部使用其他一些类。

意思是这样:

class B { ... };

class AdvancedString { 
  private: 
    B b;

  public:
    AdvancedString doSomething () { ... }

};

我需要能够在Java代码中说出AdvancedString.doSomething()并让它工作。这意味着我需要......为AdvancedString类创建一个接口?

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

这看起来合情合理吗?或者我错过了什么。感谢您提出的任何见解!

1 个答案:

答案 0 :(得分:1)

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

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