我是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/