LiteLoaderBDS-1.16.40/PreLoader/Utils.cpp
2022-09-21 19:47:03 +08:00

20 lines
756 B
C++

#include "pch.h"
#include "Utils.h"
#include <Psapi.h>
std::string GetCallerModuleFileName(unsigned long FramesToSkip) {
static const int maxFrameCount = 1;
void* frames[maxFrameCount];
int frameCount = CaptureStackBackTrace(FramesToSkip + 2, maxFrameCount, frames, NULL);
HANDLE hProcess = GetCurrentProcess();
if (0 < frameCount) {
HMODULE hModule;
GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
(LPCWSTR)frames[0], &hModule);
wchar_t buf[MAX_PATH] = {0};
GetModuleFileNameEx(GetCurrentProcess(), hModule, buf, MAX_PATH);
return std::filesystem::path(buf).filename().u8string();
}
return "Unknown";
}