Начинающий
-
Автор темы
- #1
Всем привет.
Я решил сделать dll которая включает glowesp на 1.16.5, но при внедрении dll, она у меня загружается в unloaded modules. И похоже это ошибка с маппингами (предположительно). Возможно я неправильно их беру т.к. только недавно начал изучать JNI.
Вот мой код:
Вот мой код. Я не могу понять в чем причина. Помогите пожалуйста.
Я решил сделать dll которая включает glowesp на 1.16.5, но при внедрении dll, она у меня загружается в unloaded modules. И похоже это ошибка с маппингами (предположительно). Возможно я неправильно их беру т.к. только недавно начал изучать JNI.
Вот мой код:
C++:
Info.h
#pragma once
#include <iostream>
#include <Windows.h>
#include "jni/jni.h"
JNIEnv* env = nullptr;
JavaVM* jVM = nullptr;
void Func();
C++:
Soft.cpp
#include "Info.h"
jclass MineClass = env->FindClass("net/minecraft/client/Minecraft");
jobject getInstance()
{
jmethodID getInstance = env->GetStaticMethodID(MineClass, "func_71410_x", "()Lnet/minecraft/client/Minecraft;");
return env->CallStaticObjectMethod(MineClass, getInstance);
}
jobject getPlayer()
{
jfieldID playerField = env->GetFieldID(MineClass, "field_71439_g", "Lnet/minecraft/client/entity/player/ClientPlayerEntity;");
return env->GetObjectField(getInstance(), playerField);
}
void setGlow()
{
jclass Entity = env->FindClass("net/minecraft/entity/Entity");
jmethodID Glow = env->GetMethodID(Entity, "func_184195_f", "(Z)V");
env->CallVoidMethod(getPlayer(), Glow, true);
}
void Func()
{
if (!getInstance())
return;
if (!getPlayer())
return;
if (GetAsyncKeyState(VK_RSHIFT))
{
setGlow();
}
}
C++:
dllmain.cpp
#include "Info.h"
typedef jint(JNICALL* GetCreatedJavaVMs)(JavaVM**, jsize, jsize*);
BOOL APIENTRY DllMain(HINSTANCE hModule, DWORD reason, LPVOID lpReserved)
{
if (reason == DLL_PROCESS_ATTACH)
{
HMODULE jvmHandle = GetModuleHandleA("jvm.dll");
GetCreatedJavaVMs JNI_GetCreatedJavaVMs = (GetCreatedJavaVMs)GetProcAddress(jvmHandle, "JNI_GetCreatedJavaVMs");
JNI_GetCreatedJavaVMs(&jVM, 1, NULL);
jVM->AttachCurrentThread((void**)&env, NULL);
Func();
return true;
}
return false;
}
Вот мой код. Я не могу понять в чем причина. Помогите пожалуйста.