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

How to use a HMODULE as a DWORD / Hex value? (C++)

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

有谁知道我可以简单地将 0x 添加到开头或让我的 ReadProcessMemory 认为这是一个十六进制值而不是十进制值的方法。

它是 HMODULE 变量的原因是因为我用它来获取 Solitare.exe 的基地址,但目前无法从中读取地址,因为我的 ReadProcessMemory 只是先将它转换为十六进制,所以读取地址错误。

提到的地址 00007FF695820000 是一个 uint64_t 整数。要调用该函数,您应该关心变量类型,而不是它的视觉表示。

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

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

要使用 ReadProcessMemory,您的 hProc 用户名应具有 PROCESS_VM_READ 访问权限。