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

📄 jni.h

📁 《移动Agent技术》一书的所有章节源代码。
💻 H
📖 第 1 页 / 共 5 页
字号:
    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 + -