native lib 3.2

This commit is contained in:
HolographicHat
2022-11-01 10:26:18 +08:00
parent 4dae8c52b6
commit afee99fd3f
6 changed files with 20 additions and 325 deletions

View File

@@ -2,7 +2,7 @@
#include "il2cpp-init.h"
#define DO_API(r, n, p) r (*n) p
#define DO_API(ca, oa, r, n, p) r (*n) p
#include "il2cpp-api-functions.h"
#undef DO_API
@@ -20,11 +20,6 @@ namespace Genshin {
using std::string;
UINT64 GetAddressByExports(HMODULE base, const char* name) {
UINT64 funcAddr = reinterpret_cast<UINT64>(GetProcAddress(base, name));
return funcAddr == 0 ? 0 : funcAddr;
}
void InitIL2CPP() {
TCHAR szFileName[MAX_PATH];
GetModuleFileName(NULL, szFileName, MAX_PATH);
@@ -32,7 +27,7 @@ void InitIL2CPP() {
auto hBase = GetModuleHandle("UserAssembly.dll");
auto bAddr = (UINT64)hBase;
auto cAddr = (UINT64)GetModuleHandle("UnityPlayer.dll");
#define DO_API(r, n, p) n = (r (*) p) GetAddressByExports(hBase, #n);
#define DO_API(ca, oa, r, n, p) n = (r (*) p)(bAddr + (isCN ? ca : oa))
#include "il2cpp-api-functions.h"
#undef DO_API
#define DO_APP_FUNC(ca, oa, r, n, p) n = (r (*) p)(bAddr + (isCN ? ca : oa))