Вопрос Вызов исключения

Новичок
Статус
Оффлайн
Регистрация
15 Окт 2021
Сообщения
1
Реакции[?]
0
Поинты[?]
0
Всем привет. У меня проблема с исключениями при попытке сравнить два значения в ассемблерном коде. Я в ассемблере достаточно слабо разбираюсь, поэтому прошу помощи разобраться с этими исключениями и помочь найти мою ошибку в коде.

Вот мой код ниже:

dllmain.cpp:
// dllmain.cpp : Определяет точку входа для приложения DLL.
#include "Main.h"
#include <iostream>

using namespace main_jni;

typedef jint(JNICALL* GetCreatedJavaVMs)(JavaVM*[I], jsize, jsize[/I]);

void init()
{
    HMODULE jvm_dll = GetModuleHandleA("C:\\Program Files\\Java\\jdk-16.0.2\\bin\\server\\jvm.dll");

    GetCreatedJavaVMs JNI_GetCreatedJavaVMs = (GetCreatedJavaVMs)GetProcAddress
    (jvm_dll, "JNI_GetCreatedJavaVMs");


    jint getJVM = JNI_GetCreatedJavaVMs(&jvm, 1, nullptr);
    jint A_Thread = jvm->AttachCurrentThread((void**)&env, NULL);

    if(env != nullptr)
        main_jni::init_cheat();
}


BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID lpReserved)
{
    switch (reason)
    {
    case DLL_PROCESS_ATTACH:
        CreateThread(0, 0, (LPTHREAD_START_ROUTINE)init, 0, 0, 0);
    }
    return TRUE;
}
Main.h:
#pragma once
#include "JNI/jni.h"
#include <Windows.h>
#include <iostream>
#include <thread>
#include <chrono>


namespace main_jni
{
    JNIEnv* env;
    JavaVM* jvm;

    void init_cheat();
}

namespace mappings
{
    jobject getMinecraft();
    jobject getPlayer();
}

Mappings.cpp:
#include "Main.h"

using namespace main_jni;

jobject mappings::getMinecraft()
{
    jclass MinecraftClass = env->FindClass("djz"); //net/minecraft/client/Minecraft
    jmethodID getInstance = env->GetStaticMethodID(MinecraftClass, "<init>", "()Lnet/minecraft/client/Minecraft;"); ////net/minecraft/client/Minecraft.getInstance
    return env->CallStaticObjectMethod(MinecraftClass, getInstance);
}

jobject mappings::getPlayer()
{
    jclass PlayerClass = env->FindClass("djz"); //net/minecraft/client/Minecraft
    jfieldID getPlayer = env->GetFieldID(PlayerClass, "s", "()Lnet/minecraft/client/Minecraft;"); //net/minecraft/client/Minecraft.player
    return env->GetObjectField(PlayerClass, getPlayer);
}

Soft.cpp:
#include "Main.h"

using namespace main_jni;

void main_jni::init_cheat()
{
    if (GetAsyncKeyState(VK_UP))
    {
        jclass Entity = env->FindClass("aqa"); //net/minecraft/entity/Entity
        env->CallVoidMethod(Entity, env->GetMethodID(Entity, "i", "(Z)V"), true); //net/minecraft/entity/Entity.setGlowing
    }
    if (GetAsyncKeyState(VK_DOWN))
    {
        jclass Entity = env->FindClass("aqa"); //net/minecraft/entity/Entity
        env->CallVoidMethod(Entity, env->GetMethodID(Entity, "i", "(Z)V"), false); //net/minecraft/entity/Entity.setGlowing
    }
}


Вот скрины с исключениями:
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Сверху Снизу