#include <stdio.h>
#include "Package_MyTester.h"
jstring Java_Package_MyTester_NMethod
(JNIEnv *env, jobject obj, jint first, jint second) {
jint result_i = first * second;
jstring result;
int x = 0;
for(x=0;x<5;x++) {
printf("%d",x);
}
return result;
}这个程序将两个jints相乘。结果必须是jstring格式。有没有办法把jint转换成jstring?
发布于 2012-05-08 17:03:46
您需要创建一个包含结果的C缓冲区(使用sprintf),然后返回NewStringUTF函数的结果:
jstring Java_Package_MyTester_NMethod
(JNIEnv *env, jobject obj, jint first, jint second) {
jint result_i = first * second;
char buf[64]; // assumed large enough to cope with result
sprintf(buf, "%d", result_i); // error checking omitted
return (*env)->NewStringUTF(env, buf);
}参见http://java.sun.com/docs/books/jni/html/objtypes.html的§3.2.3
https://stackoverflow.com/questions/10495361
复制相似问题