C++ LPVOID问题不接受内存地址

C++ LPVOID问题不接受内存地址,c++,C++,我确实在论坛和MSDN上找了一段时间,似乎找不到我的问题所在。我相信这对于像我这样的非noob人来说很简单。我试图编译一个简单的程序,但它不喜欢我的代码 #include "pch.h" #include <iostream> #include <Windows.h> using namespace std; int main() { int score = 80000; HWND hwnd = FindWindowA(NULL, "3D Pinball for Wi

我确实在论坛和MSDN上找了一段时间,似乎找不到我的问题所在。我相信这对于像我这样的非noob人来说很简单。我试图编译一个简单的程序,但它不喜欢我的代码

#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;
}
#包括“pch.h”
#包括
#包括
使用名称空间std;
int main()
{
积分=80000;
HWND HWND=FindWindowA(NULL,“Windows三维弹球-太空学员”);
if(hwnd==NULL)
{
您是否尝试过:

WriteProcessMemory(handle,(LPVOID)0x00F7D9CC,&score,sizeof(score),0);

以0开头的数字是八进制数字。Base8只能包含数字0…7,因此此令牌根本无效。

您尝试过:

WriteProcessMemory(handle,(LPVOID)0x00F7D9CC,&score,sizeof(score),0);

以0开头的数字是八进制数字。Base8只能包含数字0…7,因此此令牌根本无效。

更改

(LPVOID)00F7D9CC

static_cast(0x00F7D9CC)
它应该可以解决您的编译问题。

更改

(LPVOID)00F7D9CC

static_cast(0x00F7D9CC)

和>应该解决编译问题。 Posith<代码> 900f7d9cc是八进制数字<代码> 0代码>代码后面跟着字母<代码> f>代码>和代码> d>代码>。它不是C++中的有效符号。另外,Windows安全性的东西可能会妨碍这里。我不希望它容易与其他内存混淆。过程。这是我在搜索过程中从未遇到的事情。谢谢,我从你们两个方面学到了一些东西:令牌<代码> 900f7d9cc是八进制数字<代码> 0代码>代码后面跟着字母<代码> f>代码>和<代码> d>代码>。这不是C++中的有效符号。另外,Windows安全性的东西可能非常容易进入。就在这里。我不希望很容易弄乱其他进程的记忆。这是我在搜索过程中从未遇到过的。谢谢你,我从你们两个身上学到了一些东西:)谢谢你的回复。我会在今晚一有机会就尝试。我会随时通知你的。@dkpaintball8488别忘了将答案标记为正确。感谢您的回复。我会在今晚有机会的时候尽快尝试。我会通知您的。@dkpaintball8488别忘了将答案标记为正确。添加一个简单的x,并且没有更多错误。非常感谢!因为它有字母,这将被视为基数16十六进制正确?我我只是觉得奇怪,当我找到这个内存地址时,它显示得很清楚,开头没有0x。再次感谢您的响应。添加了一个简单的x,没有更多的错误。非常感谢!因为它有字母,这被认为是以16进制为基数的十六进制正确吗?我只是觉得奇怪,当我找到这个内存时地址显示得很清楚,开头没有0x。再次感谢您的回复。