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

C++ 如何将HMODULE用作DWORD/Hex值?(C+;+;),c++,visual-studio,dword,readprocessmemory,base-address,C++,Visual Studio,Dword,Readprocessmemory,Base Address,我有一个HMODULE值等于:00007FF695820000,我需要它为 0x7FF695820000,但由于该值是正确的十六进制值,因此将其转换为十六进制只会使其成为更大的十六进制值 有没有人知道一种方法可以简单地在开始处添加0x,或者让我的ReadProcessMemory认为这是十六进制值而不是十进制值 它之所以是HMODULE变量,是因为我正在使用它获取Solitare.exe的基址,但目前无法从中读取地址,因为我的ReadProcessMemory只是先将其转换为十六进制,所以读取的

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


有没有人知道一种方法可以简单地在开始处添加0x,或者让我的ReadProcessMemory认为这是十六进制值而不是十进制值


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

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

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

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

要使用
ReadProcessMemory
您的
hProc
句柄应该具有
PROCESS\u VM\u READ
访问权限。

如何“将其转换为十六进制只会使其成为更大的十六进制值”?这些是64位数字,请保留它们。将它们视为
void*
HANDLE
。展示代码的其余部分。“有人知道我可以简单地在开头添加0x的方法吗”-您确定理解表示和实际值之间的区别吗。您将数字视为存储在内存中的字符串。十六进制和十进制只是数字的字符串表示形式。除此之外,数字是相同的。@Lưu Vĩnh Phúc它使十六进制值变大,因为Visual Studio认为它是十进制数。@Tom很高兴听到这个消息。如果我的答案对你们有帮助,请在左边勾选,接受我的答案