Java实例化C++;从DLL初始化 我编写了一组C++类,并创建了一个DLL,导出了其中的一个C++类。我需要在java类中实例化导出C++类。可能吗 我搜索了Web,寻找一个可能的解决方案,但是我发现了使用JNA或JNI的解决方案,这些方法只导入了C++函数>。(p)>如果你想从java实例化C++类,你必须编写一个小的胶代码(C++ C++)来实例化所需的对象。java C++ C++语言C++语言,还需要一个对应C++类的java类,并且你需要有一个胶粘代码将C++对象转换成前面提到的Java类的对象,并将它们保持在一起(即,C++对象的更改应该反映到Java对象,而另一种方式)。

Java实例化C++;从DLL初始化 我编写了一组C++类,并创建了一个DLL,导出了其中的一个C++类。我需要在java类中实例化导出C++类。可能吗 我搜索了Web,寻找一个可能的解决方案,但是我发现了使用JNA或JNI的解决方案,这些方法只导入了C++函数>。(p)>如果你想从java实例化C++类,你必须编写一个小的胶代码(C++ C++)来实例化所需的对象。java C++ C++语言C++语言,还需要一个对应C++类的java类,并且你需要有一个胶粘代码将C++对象转换成前面提到的Java类的对象,并将它们保持在一起(即,C++对象的更改应该反映到Java对象,而另一种方式)。,java,c++,dll,Java,C++,Dll,似乎有一些关于你如何做到这一点的建议。具体来说,它告诉你如何实例化java对象,这是你需要的C++方法。 < P>是的,你可以从java实例化C++类。p> 一种方法,它可以生成C++类的java包装器。 例如,给定这样的C++类: class MyClass { public: MyClass(); int myMethod( int arg ); } MyClass myclass = new MyClass(); int val = myClass.myMethod

似乎有一些关于你如何做到这一点的建议。具体来说,它告诉你如何实例化java对象,这是你需要的C++方法。

< P>是的,你可以从java实例化C++类。p>

一种方法,它可以生成C++类的java包装器。

例如,给定这样的C++类:

class MyClass { 
public:
     MyClass();
     int myMethod( int arg );
}
MyClass myclass = new MyClass();
int val = myClass.myMethod( 42 );
SWIG允许您编写如下Java代码:

class MyClass { 
public:
     MyClass();
     int myMethod( int arg );
}
MyClass myclass = new MyClass();
int val = myClass.myMethod( 42 );

java中只有本机方法。没有C++实例化的机会。也许你可以编写一个包装类。我的类保存一些状态信息(其中存储了其他C++类的指针),只要对象存在,就需要这些状态信息。所以我可以从Java访问的每个方法都引用了这些信息。好的,但是,你有什么问题吗?非常感谢。SWIG工作起来很有魅力!顺便说一句:我没有使用VisualStudio,因此,我必须编写自己的Makefile来编译我的源代码并生成适当的SWIG文件。我使用了来自的Makefile并根据自己的需要进行了调整。不客气。祝贺你在一天之内学习了Sigg并让它与你的C++ API一起工作。