gpt4 book ai didi

android - 从 jni 返回无符号字符 []

转载 作者:行者123 更新时间:2023-11-29 16:08:47 24 4
gpt4 key购买 nike

我想从我的 jni 方法中返回无符号字符 []。我在 Jni 函数中有以下代码:

unsigned char abc[16]
abc[i] = 'b';

我使用 jstring 和 jcharArray 将 abc 返回给 java 代码。但是在使用 jstring 时我无法正确编译程序。 anb 在使用 chararray 时我得到了一些奇怪的字符。请提出一些解决方案来解决这个问题。

最佳答案

对应于 C unsigned char 的 Java 数据类型实际上是 byte。您需要在 Java 端将您的方法声明为返回 byte[],并在 C 端相应地执行操作。

这是否是正确的做法是另一个问题。在 C 中,“文本字符串”和“字节数组”几乎是同义词(模空终止);在 Java 中,并非如此。这是一串可读 (ASCII) 文本吗?如果是,则将其作为 jstring 返回更自然;要将 C [unsigned] char * 转换为 jstring,请使用 JNIEnv::NewStringUTF()。但是还有另一个警告:如果您的字符串在 UTF-8 以外的代码页中并且具有非 ASCII 字符(代码 >= 0x80),则这将不起作用;那么您最好将字符串作为字节数组传递出去,并通过 Java 端的正确代码页进行转换。

关于android - 从 jni 返回无符号字符 [],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15362960/

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