c++ - LPVOID 问题不接受内存地址

标签 c++

我确实在论坛和 MSDN 上看了一会儿,但似乎无法找到我的问题所在。我相信这对于像我这样的非菜鸟来说很简单。我正在尝试编译一个简单的程序,它不喜欢我的代码。

#include "pch.h"
#include <iostream>
#include <Windows.h>

using namespace std;

int main()
{
int score = 80000;
HWND hwnd = FindWindowA(NULL, "3D Pinball for Windows - Space Cadet");

if (hwnd == NULL)
{
    cout << "Cant find window";
    Sleep(3000);
}
else {
    DWORD ProcID;
    GetWindowThreadProcessId(hwnd, &ProcID);
    HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcID);
    cout << "Found it:  "; cout << ProcID;
    WriteProcessMemory(handle, (LPVOID)00F7D9CC, &score, sizeof(score), 0);
    Sleep(5000);
}

    return 0;
}

大部分都是我胡乱编造的,因此乱七八糟的代码毫无意义。我正在尝试更改弹球游戏的分数,我从 Cheat Engine 获得了内存地址,我可以更改那里的地址值并在玩游戏时观察它的变化。它实际上只改变了一次比赛的比分,而且再也没有改变过,我也想不通。但我的主要目标是尝试用我自己的程序而不是 Cheat Engine 来改变分数。我想主要使用 Cheat Engine 来查找地址。无论如何,地址是 LPVOID 之后的字符部分。 E2474、C3688、C2660 是出现的错误。如果能帮助我摆脱困境,我们将不胜感激。

最佳答案

改变

(LPVOID)00F7D9CC

static_cast<LPVOID>(0x00F7D9CC)

它应该可以解决您的编译问题。

关于c++ - LPVOID 问题不接受内存地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54127635/

相关文章:

c++ - 如何在 Windows 控制台中禁用用户选择

c++ - 固定模板参数的值

c++ - "null logger"- 是否会使用 ostream 运算符的空类从优化代码中编译出什么都不做?

c++ - 得到 SPOJ PLD 的错误答案

c++ - QT 自定义插件 - 提高安全性的方法

c++ - 是否允许为标准库类型和内置类型重载 operator+?

c++ - 模板和字符串流的问题

c++ - 关于默认可构造性的差异

c++ - 在单个 vbo 中对多个网格进行纹理化

c++ - C++ 模板继承中强制的完整模板实例化?