Привет код примером ниже позволяет получить и удобно сгруппировать значения для работы приложения в разных виндовс
#include <iostream>
#include <cstdint>
namespace Offsets {
namespace W1709 {
struct FirstStruct {
static constexpr std::uintptr_t somefield = 0x0;
static constexpr std::uintptr_t someOtherField = 0x8;
};
struct AnotherStruct {
static constexpr std::uintptr_t somefield = 0x4;
};
}
namespace W22h2 {
struct FirstStruct {
static constexpr std::uintptr_t somefield = 0x10;
static constexpr std::uintptr_t someOtherField = 0x18;
};
struct AnotherStruct {
static constexpr std::uintptr_t somefield = 0x14;
};
}
}
int main() {
using namespace Offsets;
// Direct access to offsets by specific version and struct category
std::cout << "W1709 FirstStruct::somefield offset: 0x"
<< std::hex << W1709::FirstStruct::somefield << std::endl;
std::cout << "W22h2 FirstStruct::SomeOtherField offset: 0x"
<< std::hex << W22h2::FirstStruct::someOtherField << std::endl;
std::cout << "W1709 AnotherStruct::someOtherField offset: 0x"
<< std::hex << W1709::AnotherStruct::somefield << std::endl;
return 0;
}
Проблема такого подхода что он работает в билд тайме, тоетсь нельзя сделать
std::string winVer = "W22h2";
std::cout << std::hex << winVer::AnotherStruct::somefield << std::endl;
хотя нужен подобный фкнкционал, как его достичь и правильно)