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

📄 jni_pas.html

📁 JNI(java本地接口)之delphi版
💻 HTML
📖 第 1 页 / 共 5 页
字号:
    fnPtr: Pointer;
  <b>end</b>;
  <font color="#003399"><i>{$EXTERNALSYM JNINativeMethod}</i></font>

  <font color="#003399"><i>// JNI Native Method Interface.</i></font>
  JNIEnv              = ^JNINativeInterface_;
  <font color="#003399"><i>{$EXTERNALSYM JNIEnv}</i></font>
  PJNIEnv             = ^JNIEnv;
  PPJNIEnv            = ^PJNIEnv;
  PJNINativeInterface = ^JNINativeInterface_;

  <font color="#003399"><i>// JNI Invocation Interface.</i></font>
  JavaVM              = ^JNIInvokeInterface_;
  <font color="#003399"><i>{$EXTERNALSYM JavaVM}</i></font>
  PJNIInvokeInterface = ^JNIInvokeInterface_;
  PJavaVM             = ^JavaVM;

  JNINativeInterface_ = <b>packed</b> <b>record</b>
    reserved0: Pointer;
    reserved1: Pointer;
    reserved2: Pointer;
    reserved3: Pointer;

    GetVersion: <b>function</b>(Env: PJNIEnv): JInt; <b>stdcall</b>;
    DefineClass: <b>function</b>(Env: PJNIEnv; <b>const</b> Name: PAnsiChar; Loader: JObject; <b>const</b> Buf: PJByte; Len: JSize): JClass; <b>stdcall</b>;
    FindClass: <b>function</b>(Env: PJNIEnv; <b>const</b> Name: PAnsiChar): JClass; <b>stdcall</b>;

    <font color="#003399"><i>// Reflection Support</i></font>
    FromReflectedMethod: <b>function</b>(Env: PJNIEnv; Method: JObject): JMethodID; <b>stdcall</b>;
    FromReflectedField: <b>function</b>(Env: PJNIEnv; Field: JObject): JFieldID; <b>stdcall</b>;
    ToReflectedMethod: <b>function</b>(Env: PJNIEnv; AClass: JClass; MethodID: JMethodID; IsStatic: JBoolean): JObject; <b>stdcall</b>;

    GetSuperclass: <b>function</b>(Env: PJNIEnv; Sub: JClass): JClass; <b>stdcall</b>;
    IsAssignableFrom: <b>function</b>(Env: PJNIEnv; Sub: JClass; Sup: JClass): JBoolean; <b>stdcall</b>;

    <font color="#003399"><i>// Reflection Support</i></font>
    ToReflectedField: <b>function</b>(Env: PJNIEnv; AClass: JClass; FieldID: JFieldID; IsStatic: JBoolean): JObject; <b>stdcall</b>;

    Throw: <b>function</b>(Env: PJNIEnv; Obj: JThrowable): JInt; <b>stdcall</b>;
    ThrowNew: <b>function</b>(Env: PJNIEnv; AClass: JClass; <b>const</b> Msg: PAnsiChar): JInt; <b>stdcall</b>;
    ExceptionOccurred: <b>function</b>(Env: PJNIEnv): JThrowable; <b>stdcall</b>;
    ExceptionDescribe: <b>procedure</b>(Env: PJNIEnv); <b>stdcall</b>;
    ExceptionClear: <b>procedure</b>(Env: PJNIEnv); <b>stdcall</b>;
    FatalError: <b>procedure</b>(Env: PJNIEnv; <b>const</b> Msg: PAnsiChar); <b>stdcall</b>;

    <font color="#003399"><i>// Local Reference Management</i></font>
    PushLocalFrame: <b>function</b>(Env: PJNIEnv; Capacity: JInt): JInt; <b>stdcall</b>;
    PopLocalFrame: <b>function</b>(Env: PJNIEnv; Result: JObject): JObject; <b>stdcall</b>;

    NewGlobalRef: <b>function</b>(Env: PJNIEnv; LObj: JObject): JObject; <b>stdcall</b>;
    DeleteGlobalRef: <b>procedure</b>(Env: PJNIEnv; GRef: JObject); <b>stdcall</b>;
    DeleteLocalRef: <b>procedure</b>(Env: PJNIEnv; Obj: JObject); <b>stdcall</b>;
    IsSameObject: <b>function</b>(Env: PJNIEnv; Obj1: JObject; Obj2: JObject): JBoolean; <b>stdcall</b>;

    <font color="#003399"><i>// Local Reference Management</i></font>
    NewLocalRef: <b>function</b>(Env: PJNIEnv; Ref: JObject): JObject; <b>stdcall</b>;
    EnsureLocalCapacity: <b>function</b>(Env: PJNIEnv; Capacity: JInt): JObject; <b>stdcall</b>;

    AllocObject: <b>function</b>(Env: PJNIEnv; AClass: JClass): JObject; <b>stdcall</b>;
    NewObject: <b>function</b>(Env: PJNIEnv; AClass: JClass; MethodID: JMethodID): JObject; <b>stdcall</b>;
    NewObjectV: <b>function</b>(Env: PJNIEnv; AClass: JClass; MethodID: JMethodID; Args: va_list): JObject; <b>stdcall</b>;
    NewObjectA: <b>function</b>(Env: PJNIEnv; AClass: JClass; MethodID: JMethodID; Args: PJValue): JObject; <b>stdcall</b>;

    GetObjectClass: <b>function</b>(Env: PJNIEnv; Obj: JObject): JClass; <b>stdcall</b>;
    IsInstanceOf: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass): JBoolean; <b>stdcall</b>;

    GetMethodID: <b>function</b>(Env: PJNIEnv; AClass: JClass; <b>const</b> Name: PAnsiChar; <b>const</b> Sig: PAnsiChar): JMethodID; <b>stdcall</b>;

    CallObjectMethod: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID): JObject; <b>stdcall</b>;
    CallObjectMethodV: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID; Args: va_list): JObject; <b>stdcall</b>;
    CallObjectMethodA: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID; Args: PJValue): JObject; <b>stdcall</b>;

    CallBooleanMethod: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID): JBoolean; <b>stdcall</b>;
    CallBooleanMethodV: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID; Args: va_list): JBoolean; <b>stdcall</b>;
    CallBooleanMethodA: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID; Args: PJValue): JBoolean; <b>stdcall</b>;

    CallByteMethod: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID): JByte; <b>stdcall</b>;
    CallByteMethodV: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID; Args: va_list): JByte; <b>stdcall</b>;
    CallByteMethodA: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID; Args: PJValue): JByte; <b>stdcall</b>;

    CallCharMethod: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID): JChar; <b>stdcall</b>;
    CallCharMethodV: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID; Args: va_list): JChar; <b>stdcall</b>;
    CallCharMethodA: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID; Args: PJValue): JChar; <b>stdcall</b>;

    CallShortMethod: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID): JShort; <b>stdcall</b>;
    CallShortMethodV: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID; Args: va_list): JShort; <b>stdcall</b>;
    CallShortMethodA: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID; Args: PJValue): JShort; <b>stdcall</b>;

    CallIntMethod: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID): JInt; <b>stdcall</b>;
    CallIntMethodV: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID; Args: va_list): JInt; <b>stdcall</b>;
    CallIntMethodA: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID; Args: PJValue): JInt; <b>stdcall</b>;

    CallLongMethod: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID): JLong; <b>stdcall</b>;
    CallLongMethodV: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID; Args: va_list): JLong; <b>stdcall</b>;
    CallLongMethodA: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID; Args: PJValue): JLong; <b>stdcall</b>;

    CallFloatMethod: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID): JFloat; <b>stdcall</b>;
    CallFloatMethodV: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID; Args: va_list): JFloat; <b>stdcall</b>;
    CallFloatMethodA: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID; Args: PJValue): JFloat; <b>stdcall</b>;

    CallDoubleMethod: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID): JDouble; <b>stdcall</b>;
    CallDoubleMethodV: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID; Args: va_list): JDouble; <b>stdcall</b>;
    CallDoubleMethodA: <b>function</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID; Args: PJValue): JDouble; <b>stdcall</b>;

    CallVoidMethod: <b>procedure</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID); <b>stdcall</b>;
    CallVoidMethodV: <b>procedure</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID; Args: va_list); <b>stdcall</b>;
    CallVoidMethodA: <b>procedure</b>(Env: PJNIEnv; Obj: JObject; MethodID: JMethodID; Args: PJValue); <b>stdcall</b>;

    CallNonvirtualObjectMethod: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID): JObject; <b>stdcall</b>;
    CallNonvirtualObjectMethodV: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: va_list): JObject; <b>stdcall</b>;
    CallNonvirtualObjectMethodA: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: PJValue): JObject; <b>stdcall</b>;

    CallNonvirtualBooleanMethod: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID): JBoolean; <b>stdcall</b>;
    CallNonvirtualBooleanMethodV: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: va_list): JBoolean; <b>stdcall</b>;
    CallNonvirtualBooleanMethodA: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: PJValue): JBoolean; <b>stdcall</b>;

    CallNonvirtualByteMethod: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID): JByte; <b>stdcall</b>;
    CallNonvirtualByteMethodV: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: va_list): JByte; <b>stdcall</b>;
    CallNonvirtualByteMethodA: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: PJValue): JByte; <b>stdcall</b>;

    CallNonvirtualCharMethod: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID): JChar; <b>stdcall</b>;
    CallNonvirtualCharMethodV: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: va_list): JChar; <b>stdcall</b>;
    CallNonvirtualCharMethodA: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: PJValue): JChar; <b>stdcall</b>;

    CallNonvirtualShortMethod: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID): JShort; <b>stdcall</b>;
    CallNonvirtualShortMethodV: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: va_list): JShort; <b>stdcall</b>;
    CallNonvirtualShortMethodA: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: PJValue): JShort; <b>stdcall</b>;

    CallNonvirtualIntMethod: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID): JInt; <b>stdcall</b>;
    CallNonvirtualIntMethodV: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: va_list): JInt; <b>stdcall</b>;
    CallNonvirtualIntMethodA: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: PJValue): JInt; <b>stdcall</b>;

    CallNonvirtualLongMethod: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID): JLong; <b>stdcall</b>;
    CallNonvirtualLongMethodV: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: va_list): JLong; <b>stdcall</b>;
    CallNonvirtualLongMethodA: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: PJValue): JLong; <b>stdcall</b>;

    CallNonvirtualFloatMethod: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID): JFloat; <b>stdcall</b>;
    CallNonvirtualFloatMethodV: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: va_list): JFloat; <b>stdcall</b>;
    CallNonvirtualFloatMethodA: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: PJValue): JFloat; <b>stdcall</b>;

    CallNonvirtualDoubleMethod: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID): JDouble; <b>stdcall</b>;
    CallNonvirtualDoubleMethodV: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: va_list): JDouble; <b>stdcall</b>;
    CallNonvirtualDoubleMethodA: <b>function</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: PJValue): JDouble; <b>stdcall</b>;

    CallNonvirtualVoidMethod: <b>procedure</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID); <b>stdcall</b>;
    CallNonvirtualVoidMethodV: <b>procedure</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: va_list); <b>stdcall</b>;
    CallNonvirtualVoidMethodA: <b>procedure</b>(Env: PJNIEnv; Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: PJValue); <b>stdcall</b>;

    GetFieldID: <b>function</b>(Env: PJNIEnv; AClass: JClass; <b>const</b> Name: PAnsiChar; <b>const</b> Sig: PAnsiChar): JFieldID; <b>stdcall</b>;

    GetObjectField: <b>function</b>(Env: PJNIEnv; Obj: JObject; FieldID: JFieldID): JObject; <b>stdcall</b>;
    GetBooleanField: <b>function</b>(Env: PJNIEnv; Obj: JObject; FieldID: JFieldID): JBoolean; <b>stdcall</b>;
    GetByteField: <b>function</b>(Env: PJNIEnv; Obj: JObject; FieldID: JFieldID): JByte; <b>stdcall</b>;
    GetCharField: <b>function</b>(Env: PJNIEnv; Obj: JObject; FieldID: JFieldID): JChar; <b>stdcall</b>;
    GetShortField: <b>function</b>(Env: PJNIEnv; Obj: JObject; FieldID: JFieldID): JShort; <b>stdcall</b>;
    GetIntField: <b>function</b>(Env: PJNIEnv; Obj: JObject; FieldID: JFieldID): JInt; <b>stdcall</b>;
    GetLongField: <b>function</b>(Env: PJNIEnv; Obj: JObject; FieldID: JFieldID): JLong; <b>stdcall</b>;
    GetFloatField: <b>function</b>(Env: PJNIEnv; Obj: JObject; FieldID: JFieldID): JFloat; <b>stdcall</b>;
    GetDoubleField: <b>function</b>(Env: PJNIEnv; Obj: JObject; FieldID: JFieldID): JDouble; <b>stdcall</b>;

    SetObjectField: <b>procedure</b>(Env: PJNIEnv; Obj: JObject; FieldID: JFieldID; Val: JObject); <b>stdcall</b>;
    SetBooleanField: <b>procedure</b>(Env: PJNIEnv; Obj: JObject; FieldID: JFieldID; Val: JBoolean); <b>stdcall</b>;
    SetByteField: <b>procedure</b>(Env: PJNIEnv; Obj: JObject; FieldID: JFieldID; Val: JByte); <b>stdcall</b>;
    SetCharField: <b>procedure</b>(Env: PJNIEnv; Obj: JObject; FieldID: JFieldID; Val: JChar); <b>stdcall</b>;
    SetShortField: <b>procedure</b>(Env: PJNIEnv; Obj: JObject; FieldID: JFieldID; Val: JShort); <b>stdcall</b>;
    SetIntField: <b>procedure</b>(Env: PJNIEnv; Obj: JObject; FieldID: JFieldID; Val: JInt); <b>stdcall</b>;
    SetLongField: <b>procedure</b>(Env: PJNIEnv; Obj: JObject; FieldID: JFieldID; Val: JLong); <b>stdcall</b>;
    SetFloatField: <b>procedure</b>(Env: PJNIEnv; Obj: JObject; FieldID: JFieldID; Val: JFloat); <b>stdcall</b>;
    SetDoubleField: <b>procedure</b>(Env: PJNIEnv; Obj: JObject; FieldID: JFieldID; Val: JDouble); <b>stdcall</b>;

    GetStaticMethodID: <b>function</b>(Env: PJNIEnv; AClass: JClass; <b>const</b> Name: PAnsiChar; <b>const</b> Sig: PAnsiChar): JMethodID; <b>stdcall</b>;

    CallStaticObjectMethod: <b>function</b>(Env: PJNIEnv; AClass: JClass; MethodID: JMethodID): JObject; <b>stdcall</b>;
    CallStaticObjectMethodV: <b>function</b>(Env: PJNIEnv; AClass: JClass; MethodID: JMethodID; Args: va_list): JObject; <b>stdcall</b>;
    CallStaticObjectMethodA: <b>function</b>(Env: PJNIEnv; AClass: JClass; MethodID: JMethodID; Args: PJValue): JObject; <b>stdcall</b>;

    CallStaticBooleanMethod: <b>function</b>(Env: PJNIEnv; AClass: JClass; MethodID: JMethodID): JBoolean; <b>stdcall</b>;
    CallStaticBooleanMethodV: <b>function</b>(Env: PJNIEnv; AClass: JClass; MethodID: JMethodID; Args: va_list): JBoolean; <b>stdcall</b>;
    CallStaticBooleanMethodA: <b>function</b>(Env: PJNIEnv; AClass: JClass; MethodID: JMethodID; Args: PJValue): JBoolean; <b>stdcall</b>;

    CallStaticByteMethod: <b>function</b>(Env: PJNIEnv; AClass: JClass; MethodID: JMethodID): JByte; <b>stdcall</b>;
    CallStaticByteMethodV: <b>function</b>(Env: PJNIEnv; AClass: JClass; MethodID: JMethodID; Args: va_list): JByte; <b>stdcall</b>;
    CallStaticByteMethodA: <b>function</b>(Env: PJNIEnv; AClass: JClass; MethodID: JMethodID; Args: PJValue): JByte; <b>stdcall</b>;

    CallStaticCharMethod: <b>function</b>(Env: PJNIEnv; AClass: JClass; MethodID: JMethodID): JChar; <b>stdcall</b>;
    CallStaticCharMethodV: <b>function</b>(Env: PJNIEnv; AClass: JClass; MethodID: JMethodID; Args: va_list): JChar; <b>stdcall</b>;
    CallStaticCharMethodA: <b>function</b>(Env: PJNIEnv; AClass: JClass; MethodID: JMethodID; Args: PJValue): JChar; <b>stdcall</b>;

⌨️ 快捷键说明

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