当前位置: 首页 > 知识库问答 >
问题:

JNI:如何将一组数据从C++转换为Java

子车凯泽
2023-03-14

我正在尝试使用JNI将一些数据从C++发送到Java。

在C++中,我有:

Array[0]:
string name = "myName"
int iterations = 16
float value = 15
... etc

所以我想用JNI返回所有关于Java的数据,我正在尝试,但不起作用

null

JNIEXPORT jobjectArray JNICALL Java_com_testing_data_MainActivity_getDATA(JNIEnv *env, jobject obj)
{
// 1º Create a temp object
jobject dataClass
    {
        jstring name;
                jint iterations;
                jfloat value;
    };

}

这些步骤返回带有数据的结构/对象是否正确?如何可能修复错误?

共有2个答案

陈飞语
2023-03-14

可以使用字符串将所有数据存储为序列数据。字段由分隔符(例如“:”)分隔,如下所示:

std::string sequenceData = "my name" + ":" + "16" + ":" + "15" + ...;

将这个序列传递给Java,然后拆分得到所需的值。使用string.split()stringtokenizer

廖琨
2023-03-14

将所有内容转换为JNI类型不是一个好主意。通常,最好创建一个对等对象,即指向本机资源的句柄指针,如Windows GUI编程中的hWnd。

 类似资料:
  • 问题内容: 有谁知道如何将包含json的字符串转换为C#数组。我有这个从webBrowser读取text / json并将其存储到字符串中。 只需要以某种方式将json字符串更改为数组即可。一直在查看Json.NET,但是我不确定那是否是我所需要的,因为我不想将数组更改为json。但是反过来。谢谢您的帮助! 问题答案: 只需使用字符串并使用JavaScriptSerializer将其反序列化为本地

  • 更新: 错误:< code>jbyte* elements = (*env)- 我刚到JNI,所以我不熟悉JNI和英语。 现在,我尝试用Java编写简单的JNI文件读取程序,并用c语言将其写入文件 文件读取 文件编写C代码: 我已经尝试了许多解决方案(下面的链接),但没有运气将其写入文件。请提供正确的解决方案和最佳的JNI教程网站。 已经尝试解决方案:(但不成功) 将java中的字节[]转换为C中

  • 问题内容: 我有一个使用ctypes调用Python的C++回调函数。该函数的参数是一个指向double和元素数量数组的指针。 元素很多,大约2,000,000。我需要将此发送到scipy函数。 C ++原型是: 以下是python代码: 问题是打印数据列表返回: 这是不正确的(在c ++端检查时,数据中填充了许多其他数字。 另外,如果我使用此代码将数据转换为python列表,则会在分配步骤中锁定

  • 问题内容: 我已经有了用于将一维二维转换为一维二维的代码,但是我不知道如何将其转换。这是我的代码: 问题答案: 您正在寻找类似的东西: 与以下内容相同: 但试图帮助进一步解释这个概念。

  • 本文向大家介绍如何将JSON数据转换为Python元组?,包括了如何将JSON数据转换为Python元组?的使用技巧和注意事项,需要的朋友参考一下 您可以先使用json.loads将json转换为dict,然后使用dict.items()将其转换为python元组。您可以使用Python中的json模块解析JSON文件。该模块解析json并将其放入字典中。然后,您可以像普通字典一样从中获取值。例如

  • 我在Java中有一个tiff图像的INT[2048][2048]原始数据数组。我想把那个数组转换回BufferedImage。我该如何进行?