Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==========================================================
- // ==== Created By Nekit111 ====
- // ==========================================================
- var
- JNI;
- function Exception (Jnienv: PJNIEnv): PAnsiChar;
- var
- err: jthrowable;
- isCopy: JBoolean;
- toString: JMethodID;
- JStr: JString;
- begin
- err:= jnienv^.ExceptionOccurred(Jnienv);
- isCopy:= JNI_False;
- toString:= jnienv^.GetMethodID(jnienv, jnienv^.FindClass(jnienv, 'java/lang/Object'), 'toString', '()Ljava/lang/String;');
- JStr:= jnienv^.CallObjectMethod(jnienv, err, toString);
- Result:= jnienv^.GetStringUTFChars(jnienv, JStr, @isCopy);
- end;
- procedure DllMain(dwReason: LongWord);
- var
- VmsCount: Integer;
- JVMArray: array of PJavaVM;
- NumberOfVMs: JSize;
- JNIEnv: PJNIEnv;
- GetCreatedJavaVMs: TJNI_GetCreatedJavaVMs;
- const
- BufferSize = 256;
- begin
- case dwReason of
- DLL_PROCESS_ATTACH:
- begin
- GetCreatedJavaVMs := GetProcAddress(GetModuleHandle('jvm.dll'), 'JNI_GetCreatedJavaVMs');
- SetLength(JVMArray, BufferSize);
- GetCreatedJavaVMs(@JVMArray[0], BufferSize, @NumberOfVMs);
- if NumberOfVMs > 0 then
- begin
- for VmsCount := 0 to NumberOfVMs - 1 do
- begin
- JVMArray[VmsCount]^.GetEnv(JVMArray[VmsCount], @JNIEnv, JNI_VERSION_1_8);
- JVMArray[VMsCount]^.AttachCurrentThread(JVMArray[VmsCount], @JNIEnv, Nil);
- if DefineClass(Jnienv, 'ru/er_log/game/Gamer', 'D:\111\Gamer.class') = NIL then
- Showmessage(Exception(JNIEnv));
- else
- Showmessage('Class is Loaded');
- end;
- end
- else
- begin
- Exit;
- end;
- end;
- DLL_PROCESS_DETACH:
- begin
- exitcode:=noerror;
- end;
- end;
- end;
- begin
- DisableThreadLibraryCalls(hInstance);
- DllProc := @DllMain;
- DllProc(DLL_PROCESS_ATTACH);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement