如何将HMODULE用作DWORD / Hex值? (C ++)

时间:2016-09-01 03:47:20

标签: c++ visual-studio dword readprocessmemory base-address

我的HMODULE值等于:00007FF695820000,我需要它 0x7FF695820000,但因为该值是正确的十六进制值,将其转换为十六进制只是使其成为更大的十六进制值。

有没有人知道我可以简单地在开头添加0x或让我的ReadProcessMemory认为这是十六进制值而不是十进制值。

它是HMODULE变量的原因是因为我使用它来获取Solitare.exe的基地址但是当前无法从中读取地址,因为我的ReadProcessMemory只是将其转换为十六进制,因此读取错误的地址。 / p>

1 个答案:

答案 0 :(得分:0)

提到的地址00007FF695820000uint64_t整数。要调用该函数,您应该关注变量类型,而不是它的可视化表示。

您可以通过以下方式读取进程内存:

UINT_PTR addr = (UINT_PTR)GetModuleHandle("Solitare.exe");
ReadProcessMemory(hProc, (void*)addr, pBuffer, nSize, &BytesRead);

要使用ReadProcessMemory您的hProc句柄应具有PROCESS_VM_READ访问权限。