- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 JNI 将 jobobjectArray
从 C 传输到 Java。
目前,我收到以下错误:
SharedTable.c: In function ‘JAVA_model_JNIResultSet_getSpieler’:
SharedTable.c:116:5: warning: passing argument 4 of ‘(*env)->SetObjectArrayElement’ from incompatible pointer type [enabled by default]
ret, i, ptr);
我知道我应该返回一个 jObject,但我不知道如何创建它。
我的结构如下所示:
typedef struct _Spieler {
char vorname[50];
char nachname[50];
int trikotnummer;
struct _Spieler *next;
} Spieler;
我的代码如下所示:
Spieler *ptr = head;
jobjectArray ret;
int i;
jclass class = (*env)->FindClass(env, "model/Spieler");
ret= (*env)->NewObjectArray(env, count, class, NULL);
for(i = 0; i < count; i++) {
(*env)->SetObjectArrayElement(env, ret, i, ptr);
ptr = ptr->next;
}
return ret;
最佳答案
正如@talex所正确评论的那样,你不能用C结构填充Java数组。您可能应该声明一个与 Spieler 结构等效的 Java 类,并在循环中使用该 Java 类的构造函数创建数组的每个元素。
类似于,
public class Spieler {
private String vorname;
private String nachname;
private int trikotnummer;
public Spieler(String vorname, String nachname, int trikotnummer) {
this.vorname = vorname;
this.nachname = nachname;
this.trikotnummer = trikotnummer;
}
};
JNI 允许您获取 Java 类字段的字段 ID,并单独设置它们(即使它们是私有(private)的),而不是使用构造函数。
关于java - 在 C 中创建 jobobject 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39946330/
有没有办法从 JobObject 中分离一个进程?我的问题是,如果我使用 RunAs 创建一个新进程,比如 cmd.exe,那么它将自动分配给一个 JobObject。如果我想从这个 cmd 运行我的
我的应用程序正在作业中运行。我想使用 OpenJobObject 获取此 Jobobject 的句柄,以便稍后使用此句柄。问题是,我不知道作业名称,将 NULL 传递给作业名称会返回错误 87(参数不
我使用 JNI 设置一些字段,如下所示: JNIEXPORT void JNICALL Java_HelloJNI_sayHello(JNIEnv *env, jobject thisObj) { j
有人可以帮我吗?我尝试使用 JOB_OBJECT_SECURITY_ONLY_TOKEN 创建作业对象,但 SetInformationJobObject 始终失败,错误代码为 6(无效句柄)。这是我
我的应用程序是一个带有一些 native 代码的 Android 应用程序。 Java 代码通过 new Thread(new Runnable) 启动一个线程,在 native 代码中,我通过 At
使用流程,我可以执行以下操作: int pid; ::CreateProcess(NULL, cmd, ..., &pi); pid = pi.dwProcessId; ::CloseHandle(p
我有一个创建 JobObject 的 Windows 服务,只要机器打开我就需要它保持事件状态 - 目标是管理一些可以随时终止/启动此 JobObject 的用户 session 进程。我在服务中创建
我想使用 JNI 将 jobobjectArray 从 C 传输到 Java。 目前,我收到以下错误: SharedTable.c: In function ‘JAVA_model_JNIResult
我想在 JNI 中存储一个 java 对象。所以我愿意 jobject gRefObj = (*env)->NewGlobalRef(env, obj); 之后,我想从其他线程以及从 java 调用
我是一名优秀的程序员,十分优秀!