你可以把char*转换成char数组,这样在JNI中就有对应的数据类型jcharArray了
以下是c程序:
JNIEXPORT void JNICALL
Java_CharArray_sumArray(JNIEnv *env, jobject obj, jcharArray arr)
{
jsize len = (*env)->GetArrayLength(env, arr);
int i, sum = 0;
jchar *body = (*env)->GetCharArrayElements(env, arr, 0);
...
}
这样你就可以操作char*类型的变量body了
以下是c程序:
JNIEXPORT void JNICALL
Java_CharArray_sumArray(JNIEnv *env, jobject obj, jcharArray arr)
{
jsize len = (*env)->GetArrayLength(env, arr);
int i, sum = 0;
jchar *body = (*env)->GetCharArrayElements(env, arr, 0);
...
}
这样你就可以操作char*类型的变量body了
...
public native void I2C_Link(???);
myButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
I2C_Link(???)
}
});
鼠标点击按钮不就调用I2C_Link()方法了吗?
Exception occurred during event dispatching:
java.lang.UnsatisfiedLinkError: S2I_Link
at cheess.demo.S2I_Link(Native Method)
at cheess.demo$1.actionPerformed(demo.java:41)
at java.awt.Button.processActionEvent(Button.java:329)
at java.awt.Button.processEvent(Button.java:302)
at java.awt.Component.dispatchEventImpl(Component.java:2595)
at java.awt.Component.dispatchEvent(Component.java:2499)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:319)
at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:103)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:84)
这是怎么回事???