こんにちは、私はJNIの質問がある、私はクラスが怒っている。ユーザー空間のUserConfigクラスに変数a、b、c、dを設定しました。クラス内のクラスの配列内の変数にアクセスするJNI
public class SetConfig extends Config {
int status;
public native int setConfig_IOCTL();
}
public class Config {
public Config() { User = new UserConfig[100]; }
int number;
UserConfig[] user;
}
public class UserConfig {
int a;
int b;
int c;
int d;
}
私はその後、その後、カーネルドライバに渡されるCの構造体に変数を割り当てます。
typedef struct {
int status;
Config_t config;
} getConfig;
typedef struct {
int number;
UserConfig_t userConfig[100];
} Config_t;
typedef struct {
int a;
int b;
int c;
int d;
} UserConfig_t;
私は正しくUserConfigをクラス内のフィールドにアクセスするためのフィールド識別子を取得して問題を抱えていて、正しい方向に私を指すようにいくつかの助けを探していました。
私はこれが間違っていることを知っています。私はJNIを使用して開始しているよう
JNIEXPORT jint JNICALL com_example_test_Config_config_IOCTL(JNIEnv *env, jobject instance) {
getConfig_t tempConfig;
jclass thisClass = (*env)->GetObjectClass(env, instance);
jfieldID fid = (*env)->GetFieldID(env, thisClass, "a", "[LTest/jni/UserConfig;");
tempConfig.config.userConfig[0] = (*env)->GetIntField(instance, fid);
}
任意の助けいただければ幸いです。
返信いただきありがとうございます。私が持っているコードは、私が実装したものではなく、サンプルコードです。私はあなたの提案を感謝します。 – Spoons