C ++ Qt WriteProcessMemory

时间:2012-03-30 17:25:00

标签: c++ windows qt

我正在尝试使用Qt与QtCreator进行WriteProcessMemory。当我按下按钮时它不会写。如果有人可以提供帮助,这是我正在使用的代码。

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <windows.h>

HANDLE hProcess;
int MYBASE;

void Attach() {
    DWORD pid;
    HWND hWindow = FindWindow(NULL, L"Generic Property Editor Thingy");
    GetWindowThreadProcessId(hWindow, &pid);
    hProcess = OpenProcess(PROCESS_ALL_ACCESS, 0, pid);
}

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    Attach();
    WriteProcessMemory(hProcess, (void*)0x4E709C, (void*)(PBYTE)"\xEB", 1, NULL);

}

2 个答案:

答案 0 :(得分:2)

您错过了windows.h的包含。

这是由错误

决定的
error C2146: syntax error : missing ';' before identifier 'hProcess'

因为hProcess被声明为

HANDLE hProcess;

因此,hProcess之前的类型未定义。

要解决您的问题,您必须具备以下内容

#include <windows.h>

答案 1 :(得分:2)

如果您还没有解决此错误:

mainwindow.cpp(103) : error C3861: 'Attach': identifier not found

函数名在C / C ++等中是敏感的...所以将函数重命名为“Attach(...)”