⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getinfo.c

📁 初级学习资料必读本
💻 C
字号:
#include <stdio.h>#include <string.h>#include <stdlib.h>#include "MyTest.h"jint Java_MyTest_getInfo(JNIEnv *env, jobject obj) {	int retvalue;	int i, j, num;	jint ret;	jclass myClass;	jmethodID methID;	jfieldID fld, fld2, fld3;	jvalue args[2];	jdouble retDbl;	jfloat retFlt;	ret = 0;	i = 0;	retvalue = (*env)->GetVersion(env);	printf ("Version #: %d\n", retvalue);	myClass = (*env)->GetObjectClass(env, obj);	if (myClass == 0) return 1;		// get fieldID	fld = (*env)->GetFieldID(env, myClass, "myInt","I");	if ((*env)->ExceptionOccurred(env)) return 2;	fld2 = (*env)->GetFieldID(env, myClass, "myDbl", "D");	if ((*env)->ExceptionOccurred(env)) return 2;	fld3 = (*env)->GetFieldID(env, myClass, "myFlt", "F");	if ((*env)->ExceptionOccurred(env)) return 2;	// get field value	ret =  (*env)->GetIntField(env, obj, fld);	if ((*env)->ExceptionOccurred(env)) return 3;	retDbl =  (*env)->GetDoubleField(env, obj, fld2);	if ((*env)->ExceptionOccurred(env)) return 3;	retFlt =  (*env)->GetFloatField(env, obj, fld3);	if ((*env)->ExceptionOccurred(env)) return 3;	methID = (*env)->GetMethodID(env, myClass, "displayHello", "()V");	if (methID==0) return 4;	// call displayHello	(*env)->CallVoidMethod(env, obj, methID);	// do some processing with myInt	methID = (*env)->GetMethodID(env, myClass, "doCalc","(II)I");	if (methID==0) return 5;	// call doCalc Java routine	num = 2;	ret = (*env)->CallIntMethod(env, obj, methID, ret, num);	// call doCalc return using callmethoda	args[0].i = ret;	args[1].i = num;	ret = (*env)->CallIntMethodA(env, obj, methID, &args[0]);	// call c function for further calculations	ret = myCalc(ret, num);	// set a new value in myInt	(*env)->SetIntField(env, obj, fld, ret);	if ((*env)->ExceptionOccurred(env)) return 6;	retDbl = 5.689e9;	(*env)->SetDoubleField(env, obj, fld2, retDbl);	if ((*env)->ExceptionOccurred(env)) return 6;	retFlt = 1.123;	(*env)->SetFloatField(env, obj, fld3, retFlt);	if ((*env)->ExceptionOccurred(env)) return 6;	return(i);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -