gpt4 book ai didi

java - 不是结构或联盟

转载 作者:行者123 更新时间:2023-11-30 14:47:23 25 4
gpt4 key购买 nike

每当我尝试构建此代码时

#include "jni.h"
#include "NetworkGUI.h"
#include "String.h"
#include "stdlib.h"

JNIEXPORT jobjectArray JNICALL Java_NetworkGUI_getNetworkNames(JNIEnv
*env, jobject obj)
{
char *networkNames[3];
networkNames = {"TWC", "Comcast", "Spectrum"};
jobjectArray names;

names = (jobjectArray)env->NewObjectArray(3, env->FindClass("Java/lang/String"), env -> NewStringUTF(""));

int i;
for( i = 0; i < 3; i++)
{
env -> SetObjectArrayElement(names, i,
NewStringUTF(networkNames[i]));
}
return (names);
}

我明白

request for member '*******' in something not a structure or union

对于 NewObjectArrayNewStringUTFFindClass 和 'SetObjectArrayElement' 在调用它们的行中。这是我的头文件

/* DO NOT EDIT THIS FILE - it is machine generated */
#include "jni.h"
/* Header for class NetworkGUI */

#ifndef _Included_NetworkGUI
#define _Included_NetworkGUI
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: NetworkGUI
* Method: hostRun
* Signature: (I)I
*/

JNIEXPORT jobjectArray JNICALL Java_NetworkGUI_getNetworkNames
(JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif

到底是什么原因造成的?

最佳答案

您没有给我们提供一个可以尝试的最小示例,也没有提供发生错误的行,但我的猜测是这个

(jobjectArray)env->NewObjectArray(...)

做了一些与你想象的不同的事情。在 C 中,后缀运算符(例如 ->(...))具有比强制转换更高的词法优先级。您可能需要添加一些括号以清楚地表达您的意思。

关于java - 不是结构或联盟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51319426/

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