📄 jni.h
字号:
void (PJNICALL SetStaticIntField) /*ibm*/
(JNIEnv *env, jclass clazz, jfieldID fieldID, jint value);
void (PJNICALL SetStaticLongField) /*ibm*/
(JNIEnv *env, jclass clazz, jfieldID fieldID, jlong value);
void (PJNICALL SetStaticFloatField) /*ibm*/
(JNIEnv *env, jclass clazz, jfieldID fieldID, jfloat value);
void (PJNICALL SetStaticDoubleField) /*ibm*/
(JNIEnv *env, jclass clazz, jfieldID fieldID, jdouble value);
jstring (PJNICALL NewString) /*ibm*/
(JNIEnv *env, const jchar *unicode, jsize len);
jsize (PJNICALL GetStringLength) /*ibm*/
(JNIEnv *env, jstring str);
const jchar *(PJNICALL GetStringChars) /*ibm*/
(JNIEnv *env, jstring str, jboolean *isCopy);
void (PJNICALL ReleaseStringChars) /*ibm*/
(JNIEnv *env, jstring str, const jchar *chars);
jstring (PJNICALL NewStringUTF) /*ibm*/
(JNIEnv *env, const char *utf);
jsize (PJNICALL GetStringUTFLength) /*ibm*/
(JNIEnv *env, jstring str);
const char* (PJNICALL GetStringUTFChars) /*ibm*/
(JNIEnv *env, jstring str, jboolean *isCopy);
void (PJNICALL ReleaseStringUTFChars) /*ibm*/
(JNIEnv *env, jstring str, const char* chars);
jsize (PJNICALL GetArrayLength) /*ibm*/
(JNIEnv *env, jarray array);
jobjectArray (PJNICALL NewObjectArray) /*ibm*/
(JNIEnv *env, jsize len, jclass clazz, jobject init);
jobject (PJNICALL GetObjectArrayElement) /*ibm*/
(JNIEnv *env, jobjectArray array, jsize index);
void (PJNICALL SetObjectArrayElement) /*ibm*/
(JNIEnv *env, jobjectArray array, jsize index, jobject val);
jbooleanArray (PJNICALL NewBooleanArray) /*ibm*/
(JNIEnv *env, jsize len);
jbyteArray (PJNICALL NewByteArray) /*ibm*/
(JNIEnv *env, jsize len);
jcharArray (PJNICALL NewCharArray) /*ibm*/
(JNIEnv *env, jsize len);
jshortArray (PJNICALL NewShortArray) /*ibm*/
(JNIEnv *env, jsize len);
jintArray (PJNICALL NewIntArray) /*ibm*/
(JNIEnv *env, jsize len);
jlongArray (PJNICALL NewLongArray) /*ibm*/
(JNIEnv *env, jsize len);
jfloatArray (PJNICALL NewFloatArray) /*ibm*/
(JNIEnv *env, jsize len);
jdoubleArray (PJNICALL NewDoubleArray) /*ibm*/
(JNIEnv *env, jsize len);
jboolean * (PJNICALL GetBooleanArrayElements) /*ibm*/
(JNIEnv *env, jbooleanArray array, jboolean *isCopy);
jbyte * (PJNICALL GetByteArrayElements) /*ibm*/
(JNIEnv *env, jbyteArray array, jboolean *isCopy);
jchar * (PJNICALL GetCharArrayElements) /*ibm*/
(JNIEnv *env, jcharArray array, jboolean *isCopy);
jshort * (PJNICALL GetShortArrayElements) /*ibm*/
(JNIEnv *env, jshortArray array, jboolean *isCopy);
jint * (PJNICALL GetIntArrayElements) /*ibm*/
(JNIEnv *env, jintArray array, jboolean *isCopy);
jlong * (PJNICALL GetLongArrayElements) /*ibm*/
(JNIEnv *env, jlongArray array, jboolean *isCopy);
jfloat * (PJNICALL GetFloatArrayElements) /*ibm*/
(JNIEnv *env, jfloatArray array, jboolean *isCopy);
jdouble * (PJNICALL GetDoubleArrayElements) /*ibm*/
(JNIEnv *env, jdoubleArray array, jboolean *isCopy);
void (PJNICALL ReleaseBooleanArrayElements) /*ibm*/
(JNIEnv *env, jbooleanArray array, jboolean *elems, jint mode);
void (PJNICALL ReleaseByteArrayElements) /*ibm*/
(JNIEnv *env, jbyteArray array, jbyte *elems, jint mode);
void (PJNICALL ReleaseCharArrayElements) /*ibm*/
(JNIEnv *env, jcharArray array, jchar *elems, jint mode);
void (PJNICALL ReleaseShortArrayElements) /*ibm*/
(JNIEnv *env, jshortArray array, jshort *elems, jint mode);
void (PJNICALL ReleaseIntArrayElements) /*ibm*/
(JNIEnv *env, jintArray array, jint *elems, jint mode);
void (PJNICALL ReleaseLongArrayElements) /*ibm*/
(JNIEnv *env, jlongArray array, jlong *elems, jint mode);
void (PJNICALL ReleaseFloatArrayElements) /*ibm*/
(JNIEnv *env, jfloatArray array, jfloat *elems, jint mode);
void (PJNICALL ReleaseDoubleArrayElements) /*ibm*/
(JNIEnv *env, jdoubleArray array, jdouble *elems, jint mode);
void (PJNICALL GetBooleanArrayRegion) /*ibm*/
(JNIEnv *env, jbooleanArray array, jsize start, jsize l, jboolean *buf);
void (PJNICALL GetByteArrayRegion) /*ibm*/
(JNIEnv *env, jbyteArray array, jsize start, jsize len, jbyte *buf);
void (PJNICALL GetCharArrayRegion) /*ibm*/
(JNIEnv *env, jcharArray array, jsize start, jsize len, jchar *buf);
void (PJNICALL GetShortArrayRegion) /*ibm*/
(JNIEnv *env, jshortArray array, jsize start, jsize len, jshort *buf);
void (PJNICALL GetIntArrayRegion) /*ibm*/
(JNIEnv *env, jintArray array, jsize start, jsize len, jint *buf);
void (PJNICALL GetLongArrayRegion) /*ibm*/
(JNIEnv *env, jlongArray array, jsize start, jsize len, jlong *buf);
void (PJNICALL GetFloatArrayRegion) /*ibm*/
(JNIEnv *env, jfloatArray array, jsize start, jsize len, jfloat *buf);
void (PJNICALL GetDoubleArrayRegion) /*ibm*/
(JNIEnv *env, jdoubleArray array, jsize start, jsize len, jdouble *buf);
void (PJNICALL SetBooleanArrayRegion) /*ibm*/
(JNIEnv *env, jbooleanArray array, jsize start, jsize l, jboolean *buf);
void (PJNICALL SetByteArrayRegion) /*ibm*/
(JNIEnv *env, jbyteArray array, jsize start, jsize len, jbyte *buf);
void (PJNICALL SetCharArrayRegion) /*ibm*/
(JNIEnv *env, jcharArray array, jsize start, jsize len, jchar *buf);
void (PJNICALL SetShortArrayRegion) /*ibm*/
(JNIEnv *env, jshortArray array, jsize start, jsize len, jshort *buf);
void (PJNICALL SetIntArrayRegion) /*ibm*/
(JNIEnv *env, jintArray array, jsize start, jsize len, jint *buf);
void (PJNICALL SetLongArrayRegion) /*ibm*/
(JNIEnv *env, jlongArray array, jsize start, jsize len, jlong *buf);
void (PJNICALL SetFloatArrayRegion) /*ibm*/
(JNIEnv *env, jfloatArray array, jsize start, jsize len, jfloat *buf);
void (PJNICALL SetDoubleArrayRegion) /*ibm*/
(JNIEnv *env, jdoubleArray array, jsize start, jsize len, jdouble *buf);
jint (PJNICALL RegisterNatives) /*ibm*/
(JNIEnv *env, jclass clazz, const JNINativeMethod *methods,
jint nMethods);
jint (PJNICALL UnregisterNatives) /*ibm*/
(JNIEnv *env, jclass clazz);
jint (PJNICALL MonitorEnter) /*ibm*/
(JNIEnv *env, jobject obj);
jint (PJNICALL MonitorExit) /*ibm*/
(JNIEnv *env, jobject obj);
jint (PJNICALL GetJavaVM) /*ibm*/
(JNIEnv *env, JavaVM **vm);
};
/*
* We use inlined functions for C++ so that programmers can write:
*
* env->FindClass("java/lang/String")
*
* in C++ rather than:
*
* (*env)->FindClass(env, "java/lang/String")
*
* in C.
*/
struct JNIEnv_ {
const struct JNINativeInterface_ *functions;
void *reserved0;
void *reserved1[6];
#ifdef __cplusplus
jint GetVersion() {
return functions->GetVersion(this);
}
jclass DefineClass(const char *name, jobject loader, const jbyte *buf,
jsize len) {
return functions->DefineClass(this, name, loader, buf, len);
}
jclass FindClass(const char *name) {
return functions->FindClass(this, name);
}
jclass GetSuperclass(jclass sub) {
return functions->GetSuperclass(this, sub);
}
jboolean IsAssignableFrom(jclass sub, jclass sup) {
return functions->IsAssignableFrom(this, sub, sup);
}
jint Throw(jthrowable obj) {
return functions->Throw(this, obj);
}
jint ThrowNew(jclass clazz, const char *msg) {
return functions->ThrowNew(this, clazz, msg);
}
jthrowable ExceptionOccurred() {
return functions->ExceptionOccurred(this);
}
void ExceptionDescribe() {
functions->ExceptionDescribe(this);
}
void ExceptionClear() {
functions->ExceptionClear(this);
}
void FatalError(const char *msg) {
functions->FatalError(this, msg);
}
jobject NewGlobalRef(jobject lobj) {
return functions->NewGlobalRef(this,lobj);
}
void DeleteGlobalRef(jobject gref) {
functions->DeleteGlobalRef(this,gref);
}
void DeleteLocalRef(jobject obj) {
functions->DeleteLocalRef(this, obj);
}
jboolean IsSameObject(jobject obj1, jobject obj2) {
return functions->IsSameObject(this,obj1,obj2);
}
jobject AllocObject(jclass clazz) {
return functions->AllocObject(this,clazz);
}
jobject NewObject(jclass clazz, jmethodID methodID, ...) {
va_list args;
jobject result;
va_start(args, methodID);
result = functions->NewObjectV(this,clazz,methodID,args);
va_end(args);
return result;
}
jobject NewObjectV(jclass clazz, jmethodID methodID,
va_list args) {
return functions->NewObjectV(this,clazz,methodID,args);
}
jobject NewObjectA(jclass clazz, jmethodID methodID,
jvalue *args) {
return functions->NewObjectA(this,clazz,methodID,args);
}
jclass GetObjectClass(jobject obj) {
return functions->GetObjectClass(this,obj);
}
jboolean IsInstanceOf(jobject obj, jclass clazz) {
return functions->IsInstanceOf(this,obj,clazz);
}
jmethodID GetMethodID(jclass clazz, const char *name,
const char *sig) {
return functions->GetMethodID(this,clazz,name,sig);
}
jobject CallObjectMethod(jobject obj, jmethodID methodID, ...) {
va_list args;
jobject result;
va_start(args,methodID);
result = functions->CallObjectMethodV(this,obj,methodID,args);
va_end(args);
return result;
}
jobject CallObjectMethodV(jobject obj, jmethodID methodID,
va_list args) {
return functions->CallObjectMethodV(this,obj,methodID,args);
}
jobject CallObjectMethodA(jobject obj, jmethodID methodID,
jvalue * args) {
return functions->CallObjectMethodA(this,obj,methodID,args);
}
jboolean CallBooleanMethod(jobject obj,
jmethodID methodID, ...) {
va_list args;
jboolean result;
va_start(args,methodID);
result = functions->CallBooleanMethodV(this,obj,methodID,args);
va_end(args);
return result;
}
jboolean CallBooleanMethodV(jobject obj, jmethodID methodID,
va_list args) {
return functions->CallBooleanMethodV(this,obj,methodID,args);
}
jboolean CallBooleanMethodA(jobject obj, jmethodID methodID,
jvalue * args) {
return functions->CallBooleanMethodA(this,obj,methodID, args);
}
jbyte CallByteMethod(jobject obj, jmethodID methodID, ...) {
va_list args;
jbyte result;
va_start(args,methodID);
result = functions->CallByteMethodV(this,obj,methodID,args);
va_end(args);
return result;
}
jbyte CallByteMethodV(jobject obj, jmethodID methodID,
va_list args) {
return functions->CallByteMethodV(this,obj,methodID,args);
}
jbyte CallByteMethodA(jobject obj, jmethodID methodID,
jvalue * args) {
return functions->CallByteMethodA(this,obj,methodID,args);
}
jchar CallCharMethod(jobject obj, jmethodID methodID, ...) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -