Итак, у меня есть функция шаблона, использующая ReadProcessMemory
для чтения моей игры из внешней программы для отладки.
Это функция:
template<typename T>
T read(DWORD addy)
{
T buffer;
ReadProcessMemory(targetProcess, (LPVOID)addy, &buffer, sizeof(T), NULL);
assert(buffer != NULL);
return buffer;
}
Теперь я хотел бы прочитать многоуровневый указатель с несколькими разыменованиями, такими как этот:
*(*(game.exe+0x12345)+0x50)+0x70
И моя цель - сделать это с помощью моей функции шаблона:
float data = read<float>(((game.exe+0x12345)+0x50)+0x70);
Без разыменований и даже если возможно без скобок.
Я думал об использовании пакета параметров для моего шаблона, но не уверен, что он оптимален в моем случае.
например:
template<typename T>
T retVal(T val){
return *val;
}
template<typename T, typename ...LvlsType>
T read(DWORD addy, LvlsType... levels){
T buffer;
ReadProcessMemory(targetProcess, (LPVOID)addy, &buffer, sizeof(T), NULL);
assert(buffer != NULL);
return retVal(...levels);
}
Будет ли это правильно в данном случае?
Иначе не могли бы вы дать какие-нибудь советы?
Заранее спасибо .