From C I am creating a DLL loaded in Java. I call some C functions from java, and also call Java functions from C (with non-complex data types) - this works fine.
I am struggling with porting the C structure to Java.
Here is a small example of a description of what I want to do. This is not complete and possibly incorrect, because my problem is that I am not sure how to do this.
My goal is to pass a structure from type "StructType" from C to Java to use the values ββin a Java program.
In C
typedef struct { unsigned char value1; unsigned char value2; } StructType; void passStructToJava(StructType* myStruct) { class cls; jmethodID mid; cls = (*GlobalEnv)->GetObjectClass(GlobalEnv, GlobalObj); mid = (*GlobalEnv)->GetMethodID(GlobalEnv, cls, "receiveStructFromC", "(LPackage/StructType;)V"); (*GlobalEnv)->CallVoidMethod(GlobalEnv, GlobalObj, mid, myStruct); }
In java
public class StructType { public int value1; public int value2; } public StructType mMyStruct; public StructType getMyStruct() { return mMyStruct; } public void setMyStruct(StructType myStruct) { mMyStruct = myStruct; } public void receiveStructFromC(StructType myStruct) { setMyStruct(myStruct); }
Thanks in advance for your help. Steffen
java c data-structures jni
Steffen kuehn
source share