【发布时间】:2019-08-28 20:14:14
【问题描述】:
我正在学习 C++,并且正在使用 Win32 api,尤其是 ReadProcessMemory。
所以我试图从记事本中读取文本,我使用作弊引擎找到了地址。 文本采用 Windows UTF16 格式
这是我用来阅读文本的代码:
#include "pch.h"
#include <string>
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
LPCVOID Addr = (LPCVOID) 0x1711B91E610;
HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS, false, 9948);
u16string data[29];
if (!handle) {
exit(0);
}
ReadProcessMemory(handle, Addr, &data, 29, 0);
cout << data << endl;
cin.get();
}
我期待得到这个Hello world!zzzzzeeeeeezzzees
但是,我得到了这个:00000053A7EFF260
我做错了什么?谢谢
编辑:尝试了 wcout,也无法正常工作
每次我运行程序时,我都会得到一个不同的十六进制值,什么?
【问题讨论】:
-
@GSerg 不是重复的。 wcout 没有改变任何东西......
-
你认为
u16string data[29];是做什么的?ReadProcessMemory(handle, Addr, &data, 29, 0);如何填充数据? -
@Eljay 好吧 [29] 是声明我想的字符串的长度?因为我的字符串是 29 个字符
-
“嗯[29]是声明字符串的长度我猜?”你猜错了。
标签: c++