我是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 ();
}
这看起来合情合理吗?或者我错过了什么。感谢您提出的任何见解!
答案 0 :(得分:1)
JNA将帮助您访问C函数和数据。一种选择是在C API中公开您的C ++功能。
如果要访问许多C ++类,SWIG更适合。它可以为您的C ++类创建Java包装器。它非常强大,但有一个学习曲线。