📄 jni.bor
字号:
Result := PJValue(FConvertedArgs);
end;
constructor TJNIEnv.Create(AEnv: PJNIEnv);
begin
inherited Create;
FConvertedArgs := nil;
FEnv := AEnv;
FMajorVersion := GetMajorVersion;
FMinorVersion := GetMinorVersion;
FVersion := GetVersion;
end;
function TJNIEnv.StringToJString(const AString: PAnsiChar): JString;
begin
Result := Env^.NewStringUTF(Env, PChar(AString));
end;
function TJNIEnv.StringToUnicodeJString(const AString: PAnsiChar): JString;
begin
Result := Env^.NewString(Env, PJChar(AString), Length(AString));
end;
function TJNIEnv.JStringToString(JStr: JString): string;
var
IsCopy: JBoolean;
Chars: PChar;
begin
if JStr = nil then
begin
Result := '';
Exit;
end;
Chars := Env^.GetStringUTFChars(Env, JStr, IsCopy);
if Chars = nil then
Result := ''
else
begin
Result := string(Chars);
Env^.ReleaseStringUTFChars(Env, JStr, Chars);
end;
end;
function TJNIEnv.UnicodeJStringToString(JStr: JString): string;
var
IsCopy: JBoolean;
Chars: PJChar;
begin
if JStr = nil then
begin
Result := '';
Exit;
end;
Chars := Env^.GetStringChars(Env, JStr, IsCopy);
if Chars = nil then
Result := ''
else
begin
Result := string(Chars);
Env^.ReleaseStringChars(Env, JStr, Chars);
end;
end;
function TJNIEnv.GetMajorVersion: JInt;
begin
Result := GetVersion shr 16;
end;
function TJNIEnv.GetMinorVersion: JInt;
begin
Result := GetVersion mod 65536;
end;
function TJNIEnv.GetVersion: JInt;
begin
Result := Env^.GetVersion(Env);
end;
procedure TJNIEnv.VersionCheck(const FuncName: string; RequiredVersion: JInt);
begin
if Version < RequiredVersion then
raise EJNIUnsupportedMethodError.CreateFmt('Method "%s" not supported in JDK %d.%d', [FuncName, MajorVersion, MinorVersion]);
end;
procedure TJNIEnv.CallVoidMethod(Obj: JObject; MethodID: JMethodID; const Args: array of const);
begin
Env^.CallVoidMethodA(Env, Obj, MethodID, ArgsToJValues(Args));
end;
function TJNIEnv.AllocObject(AClass: JClass): JObject;
begin
Result := Env^.AllocObject(Env, AClass);
end;
function TJNIEnv.CallBooleanMethod(Obj: JObject; MethodID: JMethodID; const Args: array of const): JBoolean;
begin
Result := Env^.CallBooleanMethodA(Env, Obj, MethodID, ArgsToJValues(Args));
end;
function TJNIEnv.CallBooleanMethodA(Obj: JObject; MethodID: JMethodID; Args: PJValue): JBoolean;
begin
Result := Env^.CallBooleanMethodA(Env, Obj, MethodID, Args);
end;
function TJNIEnv.CallBooleanMethodV(Obj: JObject; MethodID: JMethodID; Args: va_list): JBoolean;
begin
Result := Env^.CallBooleanMethodV(Env, Obj, MethodID, Args);
end;
function TJNIEnv.CallByteMethod(Obj: JObject; MethodID: JMethodID; const Args: array of const): JByte;
begin
Result := Env^.CallByteMethodA(Env, Obj, MethodID, ArgsToJValues(Args));
end;
function TJNIEnv.CallByteMethodA(Obj: JObject; MethodID: JMethodID; Args: PJValue): JByte;
begin
Result := Env^.CallByteMethodA(Env, Obj, MethodID, Args);
end;
function TJNIEnv.CallByteMethodV(Obj: JObject; MethodID: JMethodID; Args: va_list): JByte;
begin
Result := Env^.CallByteMethodV(Env, Obj, MethodID, Args);
end;
function TJNIEnv.CallCharMethod(Obj: JObject; MethodID: JMethodID; const Args: array of const): JChar;
begin
Result := Env^.CallCharMethodA(Env, Obj, MethodID, ArgsToJValues(Args));
end;
function TJNIEnv.CallCharMethodA(Obj: JObject; MethodID: JMethodID; Args: PJValue): JChar;
begin
Result := Env^.CallCharMethodA(Env, Obj, MethodID, Args);
end;
function TJNIEnv.CallCharMethodV(Obj: JObject; MethodID: JMethodID; Args: va_list): JChar;
begin
Result := Env^.CallCharMethodV(Env, Obj, MethodID, Args);
end;
function TJNIEnv.CallDoubleMethod(Obj: JObject; MethodID: JMethodID; const Args: array of const): JDouble;
begin
Result := Env^.CallDoubleMethodA(Env, Obj, MethodID, ArgsToJValues(Args));
end;
function TJNIEnv.CallDoubleMethodA(Obj: JObject; MethodID: JMethodID; Args: PJValue): JDouble;
begin
Result := Env^.CallDoubleMethodA(Env, Obj, MethodID, Args);
end;
function TJNIEnv.CallDoubleMethodV(Obj: JObject; MethodID: JMethodID; Args: va_list): JDouble;
begin
Result := Env^.CallDoubleMethodV(Env, Obj, MethodID, Args);
end;
function TJNIEnv.CallFloatMethod(Obj: JObject; MethodID: JMethodID; const Args: array of const): JFloat;
begin
Result := Env^.CallFloatMethodA(Env, Obj, MethodID, ArgsToJValues(Args));
end;
function TJNIEnv.CallFloatMethodA(Obj: JObject; MethodID: JMethodID; Args: PJValue): JFloat;
begin
Result := Env^.CallFloatMethodA(Env, Obj, MethodID, Args);
end;
function TJNIEnv.CallFloatMethodV(Obj: JObject; MethodID: JMethodID; Args: va_list): JFloat;
begin
Result := Env^.CallFloatMethodV(Env, Obj, MethodID, Args);
end;
function TJNIEnv.CallIntMethod(Obj: JObject; MethodID: JMethodID; const Args: array of const): JInt;
begin
Result := Env^.CallIntMethodA(Env, Obj, MethodID, ArgsToJValues(Args));
end;
function TJNIEnv.CallIntMethodA(Obj: JObject; MethodID: JMethodID; Args: PJValue): JInt;
begin
Result := Env^.CallIntMethodA(Env, Obj, MethodID, Args);
end;
function TJNIEnv.CallIntMethodV(Obj: JObject; MethodID: JMethodID; Args: va_list): JInt;
begin
Result := Env^.CallIntMethodV(Env, Obj, MethodID, Args);
end;
function TJNIEnv.CallLongMethod(Obj: JObject; MethodID: JMethodID; const Args: array of const): JLong;
begin
Result := Env^.CallLongMethodA(Env, Obj, MethodID, ArgsToJValues(Args));
end;
function TJNIEnv.CallLongMethodA(Obj: JObject; MethodID: JMethodID; Args: PJValue): JLong;
begin
Result := Env^.CallLongMethodA(Env, Obj, MethodID, Args);
end;
function TJNIEnv.CallLongMethodV(Obj: JObject; MethodID: JMethodID; Args: va_list): JLong;
begin
Result := Env^.CallLongMethodV(Env, Obj, MethodID, Args);
end;
function TJNIEnv.CallNonvirtualBooleanMethod(Obj: JObject; AClass: JClass; MethodID: JMethodID; const Args: array of const): JBoolean;
begin
Result := Env^.CallNonvirtualBooleanMethodA(Env, Obj, AClass, MethodID, ArgsToJValues(Args));
end;
function TJNIEnv.CallNonvirtualBooleanMethodA(Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: PJValue): JBoolean;
begin
Result := Env^.CallNonvirtualBooleanMethodA(Env, Obj, AClass, MethodID, Args);
end;
function TJNIEnv.CallNonvirtualBooleanMethodV(Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: va_list): JBoolean;
begin
Result := Env^.CallNonvirtualBooleanMethodV(Env, Obj, AClass, MethodID, Args);
end;
function TJNIEnv.CallNonvirtualByteMethod(Obj: JObject; AClass: JClass; MethodID: JMethodID; const Args: array of const): JByte;
begin
Result := Env^.CallNonvirtualByteMethodA(Env, Obj, AClass, MethodID, ArgsToJValues(Args));
end;
function TJNIEnv.CallNonvirtualByteMethodA(Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: PJValue): JByte;
begin
Result := Env^.CallNonvirtualByteMethodA(Env, Obj, AClass, MethodID, Args);
end;
function TJNIEnv.CallNonvirtualByteMethodV(Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: va_list): JByte;
begin
Result := Env^.CallNonvirtualByteMethodV(Env, Obj, AClass, MethodID, Args);
end;
function TJNIEnv.CallNonvirtualCharMethod(Obj: JObject; AClass: JClass; MethodID: JMethodID; const Args: array of const): JChar;
begin
Result := Env^.CallNonvirtualCharMethodA(Env, Obj, AClass, MethodID, ArgsToJValues(Args));
end;
function TJNIEnv.CallNonvirtualCharMethodA(Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: PJValue): JChar;
begin
Result := Env^.CallNonvirtualCharMethodA(Env, Obj, AClass, MethodID, Args);
end;
function TJNIEnv.CallNonvirtualCharMethodV(Obj: JObject; AClass: JClass; MethodID: JMethodID; Args: va_list): JChar;
begin
Result := Env^.CallNonvirtualCharMethodV(Env, Obj, AClass, MethodID, Args);
end;
function TJNIEnv.CallNonvirtualDoubleMethod(Obj: JObjec
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -