Это определение моей функции, где я пытаюсь привести dwAddress, который является DWORD, к пустому указателю с reinterpret_cast (dwAddress):
template <class T>
inline bool Read(DWORD dwAddress, T& Value){
return ReadProcessMemory(m_HProcess, reinterpret_cast<LPVOID>(dwAddress), Value, sizeof(T), NULL) == true;
}
Здесь я вызываю функцию:
DWORD testValue = 1;
if(MemoryManager->Read<DWORD>(dwClientBase+dwForceAttack,testValue))
И это моя ошибка:
C:\Users\...\CLionProjects\...\CMemoryManager.h: In instantiation of 'bool CMemoryManager::Read(DWORD, T&) [with T = long unsigned int; DWORD = long unsigned int]':
C:\Users\...\CLionProjects\...\main.cpp:23:75: required from here
C:\Users\...\CLionProjects\...\CMemoryManager.h:28:33: error: invalid conversion from 'long unsigned int' to 'PVOID' {aka 'void*'} [-fpermissive]
return ReadProcessMemory(m_HProcess, reinterpret_cast<LPVOID>(dwAddress), Value, sizeof(T), NULL) == true;
~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:\Users\...\CLionProjects\...\CMemoryManager.h:7,
from C:\Users\...\CLionProjects\...\main.cpp:2:
c:\mingw\include\winbase.h:2260:59: note: initializing argument 3 of 'BOOL ReadProcessMemory(HANDLE, PCVOID, PVOID, DWORD, PDWORD)'
WINBASEAPI BOOL WINAPI ReadProcessMemory (HANDLE, PCVOID, PVOID, DWORD, PDWORD);
Я не понимаю, почему не работает приведение. Я уже пробовал много разных методов приведения, но ничего не получится.