gpt4 book ai didi

java - 将对象从 C++ 返回到 Java

转载 作者:行者123 更新时间:2023-11-28 01:04:14 26 4
gpt4 key购买 nike

我想使用 JNI 将对象从 C++ 返回到 Java 代码。
我不需要使用它的方法,而只是阅读它的字段。我该怎么做?
这个类就是这样的:

class MyOutputClass
{
public:
Array<SomeOtherClass> m_objects1;
Array<YetAnoterClass> m_objects2;
}

Array 是我的一个类,但我会改用 java 数组 :)

最佳答案

如果您想将 C++ 对象传递给 Java,则不能。但是您可以在 native 中创建一个 Java 对象,然后从您的 native 方法中返回它。
这将像这样完成:

JNIEXPORT myJavaObj JNICALL Java_cls_getObj
(JNIEnv *env, jobject obj)
{
jclass myClass;

//Find your class
myClass = (*env)->FindClass(env, "()LMyJavaClass;");

jmethodID cons = env->GetMethodID(myClass, "<init>",
"(V)V");
jobject obj = env->NewObject(myClass, cons);

//Return the object.
return obj;
}

您可以在构造函数中传递数据,也可以访问对象的字段并更改它们。顺便提一句。我没有编译上面的代码。但它不应包含太多错误。

关于java - 将对象从 C++ 返回到 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7215549/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com