我有一个包含一堆静态*lib文件的库,我希望从JNA(一个允许从JAVA代码动态调用`dll的Java库)中访问它们,那么有没有办法神奇地将静态库更改为dll?
代码是使用Visual Studio编译的(希望是相关的),我也有适当的头文件.
我无法访问源代码,我也想使用免费(如啤酒)工具.
每个人都知道Java和Scala,但C++和Scala之间有多少互操作性.例如,一个类可以被另一个类使用吗?
我正在尝试学习Android NDK的基础知识,但是当我必须在c ++类中使用它时,我就陷入了困境.
我理解如何使用一个简单的函数,但我该怎么做才能操作c ++类的字段和方法?
我正在尝试使用这个简单的c ++类:
#include <cstdlib>
#include <jni.h>
using namespace std;
class Point {
int x, y; // coordonnées du point
public:
Point() {
this->x = 0;
this->y = 0;
}
Point(int x, int y) {
this->x = x;
this->y = y;
}
int getX() const {
return x;
}
int getY() const {
return y;
}
Point symetrique() const {
return Point(-x, -y);
}
bool operator ==(const Point &p) const {
return this->x == p.getX() && …Run Code Online (Sandbox Code Playgroud) 假设我有一个带有单个导出方法的C++ DLL,例如:
CustomerProcessor* getInstance();
Run Code Online (Sandbox Code Playgroud)
即它只返回实际包含我需要调用的方法的类的实例.
我知道我可以使用JNA(扩展com.sun.jna.Library)将getInstance()方法映射到Java中的Class,将返回的CustomerProcessor实例存储在com.sun.jna.Pointer中.
然后,我可以以某种方式将此映射到CustomerProcessor类,以便我可以调用它的方法(如果是这样,如何)?