class kitten { public: void ChangeColor(int newColor); int GetColor(); },java,c++,java-native-interface,Java,C++,Java Native Interface" /> class kitten { public: void ChangeColor(int newColor); int GetColor(); },java,c++,java-native-interface,Java,C++,Java Native Interface" />

我在哪里保存我的";这";在C和x2B之间进行通信时+;和使用JNI的JAVA? 我有一个C++类,叫做小猫< /Cord> class kitten { public: void ChangeColor(int newColor); int GetColor(); }

我在哪里保存我的";这";在C和x2B之间进行通信时+;和使用JNI的JAVA? 我有一个C++类,叫做小猫< /Cord> class kitten { public: void ChangeColor(int newColor); int GetColor(); },java,c++,java-native-interface,Java,C++,Java Native Interface,现在使用JNI,我想让我的java程序能够使用这个类 我知道如何使用JNI使我的java程序能够调用C风格的函数,但这是一个成员函数 我考虑过添加一个C风格的函数 kitten*CreateNewKitten(),其中有一行:返回新小猫() 然后以某种方式将这个本机kitten对象返回给JAVA,然后JAVA代码将调用C风格的函数: ChangeColor(kitten* myKitten, int newColor) { myKitten->changeColor(color) }

现在使用JNI,我想让我的java程序能够使用这个类

我知道如何使用JNI使我的java程序能够调用C风格的函数,但这是一个成员函数

我考虑过添加一个C风格的函数
kitten*CreateNewKitten(),其中有一行:
返回新小猫()

然后以某种方式将这个本机
kitten
对象返回给JAVA,然后JAVA代码将调用C风格的函数:

ChangeColor(kitten* myKitten, int newColor)
{
   myKitten->changeColor(color)
}
为了说明问题,我的问题是: 是否可以将我的本地kitten返回到java代码?怎样?这是正确的方法吗

> P>通用问题是如何将指针从C++传递到java并返回它,在<代码>这个< /C>指针中没有什么特殊性。最好的文章之一是Roman Kennke的一篇文章,但可以在上面找到:

您可以使用Javalong获取和设置指针,除非在您的natie体系结构中指针超过64位


大概你想通过一只小猫*,而不是小猫。谢谢,解决了这个问题。