比如
class MyJavaClass
{
public string db_name;
public string table_name;
}
public class UseObjects
{public static void main(String [] args)
{
UseObjects app = new UseObjects();
MyJavaClass anObj = new MyJavaClass();
anObj.db_name = "oracle数据库";
anObj.table_name="表一";
app.print(anObj);
}private native void print(MyJavaClass obj);
static
{
System.loadLibrary("UseObjImpl");
}}JNIEXPORT void JNICALL
Java_UseObjects_changeObject(
JNIEnv * env, jobject jThis, jobject obj)
{
//这个里面咋写呀?怎么把上面的两个字符串变为指针类型 ,谢谢!
}
class MyJavaClass
{
public string db_name;
public string table_name;
}
public class UseObjects
{public static void main(String [] args)
{
UseObjects app = new UseObjects();
MyJavaClass anObj = new MyJavaClass();
anObj.db_name = "oracle数据库";
anObj.table_name="表一";
app.print(anObj);
}private native void print(MyJavaClass obj);
static
{
System.loadLibrary("UseObjImpl");
}}JNIEXPORT void JNICALL
Java_UseObjects_changeObject(
JNIEnv * env, jobject jThis, jobject obj)
{
//这个里面咋写呀?怎么把上面的两个字符串变为指针类型 ,谢谢!
}
解决方案 »
- java 线程
- linux下java -jar的问题。
- 有关《java核心开发技术从入门到精通》的问题:我的问题大至分为三个部分....
- TOMCAT中文路径问题,谢谢
- java源码在哪里看的?
- 测试JProgressBar的问题,为什么用一个JButton来控制就会出错?
- 急!!!关于java时间的运算 !!!!!
- 我写了个java记事本,想和windows的一样,想实现一些功能(Unicode控制字符的插入和显示,从右往左阅读)
- 几个关键东西,请帮忙看看,谢谢!
- 求visual j++及注册码!
- 一个java超级简单的问题[super]语句
- 求j2se api 中文版(请各位大虾献策。。。。。。。)
Java_UseObjects_print(
JNIEnv * env, jobject jThis, jobject obj)
{
const char* dbstr, tablestr;
jfield fid;
jstring jstr; jclass cls = env->GetObjectClass(obj);
assert( cls != NULL ); fid = env->GetFieldID(cls,"db_name","Ljava/lang/String");
assert( fid != NULL ); jstr = env->GetObjectField(obj,fid);
assert( jstr != NULL ); dbstr = env->GetStringUTFChar(jstr,NULL);
assert(dbstr != NULL); printf("%s",dbstr); 同理,可以得到table_name的值,楼主该知道如何实现了
}
jstring jstr;
jclass cls = env->GetObjectClass(obj);
fid = env->GetFieldID(cls,"db_name","Ljava/lang/String");
jstr = env->GetObjectField(obj,fid);
char* dbstr =(*env)->GetStringUTFChars(env,jstr ,0);
(*env)->ReleaseStringUTFChars(env,jstr ,dbstr ); //table_name相同