如何在c++控制台程序把这种字符串用ReadProcessMemory读取并用printf打印出来

如何在c++控制台程序把这种字符串用ReadProcessMemory读取并用printf打印出来

#include <locale.h>
#include <windows.h>
int main(){
setlocale(LC_ALL, "chs");
DWORD pid = 0; // 改成读取进程的PID
void* addr = (void*)0x400000; // 改成读取进程的内存地址
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
if( hProcess ){
wchar_t buf[4096] = {0};
DWORD r = 0;
if (ReadProcessMemory(hProcess, addr, buf, 4096*sizeof(wchar_t), &r)){
printf("%S\n", buf);
}else{
printf("读取进程失败\n");
}
CloseHandle(hProcess);
}else{
printf("打开进程失败\n");
}
return 0;
}