LPVOID 问题不接受内存地址
LPVOID issue wont accept memory address
我确实在论坛和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;
}
其中大部分只是因为我胡闹,因此混乱的代码没有意义。 我正在尝试更改弹球游戏的分数,我从作弊引擎中获得了内存地址,我可以更改那里的地址值并在玩游戏时观察它的变化。它实际上只改变了一次游戏中的比分,而且再也没有改变过,我也想不通。 但我的主要目标是尝试用我自己的程序而不是作弊引擎来改变分数。我想使用作弊引擎主要是为了找到地址。无论如何,地址是LPVOID之后的字符部分。E2474,C3688,C2660是出现的错误。任何帮助将不胜感激,让我解开困境。
更改
(LPVOID)00F7D9CC
自
static_cast<LPVOID>(0x00F7D9CC)
它应该解决您的编译问题。
你试过吗:
WriteProcessMemory(handle, (LPVOID)0x00F7D9CC, &score, sizeof(score), 0);
以 0 开头的数字是八进制数字。Base8 只能包含数字 0...7,因此此令牌根本无效。
相关文章:
- C++ 指针的内存地址和指向数组的内存地址如何相同?
- 在C++中打印指向不同基元数据类型的指针的内存地址
- CUDA:统一内存和指针地址的更改
- 为什么 vector 的随机访问迭代器给出与指针不同的内存地址?
- 使用内存地址访问结构的属性值
- 如何读取特定地址的进程内存?
- 为什么C++总是显示十六进制内存地址,而不仅仅是整数?
- 如果 const 不分配内存,为什么我可以获取 const 的地址?
- 将布局映射到内存地址
- 为什么同一个变量的内存地址不同?
- LLVM 传递以在特定地址分配内存
- 无法将内存地址转换为值
- 是否可以仅通过将分配的指针地址存储在C++中来分析内存?
- 给定特定内存地址的数组的动态内存分配
- 在 Microsoft Access SQL 中调用自定义 DLL 函数时传递的内存地址无效
- 我有一个线程 1:EXC_BAD_ACCESS(代码 = 1,地址 = 0x8)错误.我认为这是由于内存管理不好.我可以
- 获取 R 数据帧的内存地址
- 如何配置bazel以运行地址/内存清理器?
- 存储 std::list 元素的地址;内存
- 确定库的地址内存