mirror of
https://github.com/HIllya51/LunaHook.git
synced 2024-11-23 13:55:36 +08:00
47 lines
989 B
C++
47 lines
989 B
C++
#include "confighelper.h"
|
|
#include "stringutils.h"
|
|
std::string readfile(const wchar_t *fname)
|
|
{
|
|
FILE *f;
|
|
_wfopen_s(&f, fname, L"rb");
|
|
if (f == 0)
|
|
return {};
|
|
fseek(f, 0, SEEK_END);
|
|
auto len = ftell(f);
|
|
fseek(f, 0, SEEK_SET);
|
|
std::string buff;
|
|
buff.resize(len);
|
|
fread(buff.data(), 1, len, f);
|
|
fclose(f);
|
|
return buff;
|
|
}
|
|
void writefile(const wchar_t *fname, const std::string &s)
|
|
{
|
|
FILE *f;
|
|
_wfopen_s(&f, fname, L"w");
|
|
fprintf(f, "%s", s.c_str());
|
|
fclose(f);
|
|
}
|
|
|
|
confighelper::confighelper()
|
|
{
|
|
configpath = std::filesystem::current_path() / (x64 ? "config64.json" : "config32.json");
|
|
try
|
|
{
|
|
configs = nlohmann::json::parse(readfile(configpath.c_str()));
|
|
}
|
|
catch (std::exception &)
|
|
{
|
|
configs = {};
|
|
}
|
|
|
|
if (configs.find("plugins") == configs.end())
|
|
{
|
|
configs["plugins"] = {};
|
|
}
|
|
}
|
|
confighelper::~confighelper()
|
|
{
|
|
|
|
writefile(configpath.c_str(), configs.dump(4));
|
|
} |