错误:从'DWORD{aka long unsigned int}'到'PDWORD{aka long unsigned int*}'[-fppermissive]的转换无效;如何修复? 我对C++很新,我正在制作一个TrimePrimes和ZOMISS,我曾经尝试过为这个游戏做一个教练,但是它失败了,内存写不起作用,所以我尝试了另一个方法,但是用这个方法给了我几个错误:

错误:从'DWORD{aka long unsigned int}'到'PDWORD{aka long unsigned int*}'[-fppermissive]的转换无效;如何修复? 我对C++很新,我正在制作一个TrimePrimes和ZOMISS,我曾经尝试过为这个游戏做一个教练,但是它失败了,内存写不起作用,所以我尝试了另一个方法,但是用这个方法给了我几个错误:,c++,windows,syntax-error,C++,Windows,Syntax Error,54 |错误:从'DWORD{aka long unsigned int}'到'PDWORD'的转换无效 {aka long unsigned int*}'[-fppermissive]| 1780 |错误:初始化>'DWORDGetWindowThreadProcessIdHWND,PDWORD'[-fpPermissive]的参数2| 我只是不明白,但更奇怪的是这三个: 62 |错误:在“else”之前应为“}”| 70 |错误:“else”没有前面的“if”| 76 |错误:“else”没

54 |错误:从'DWORD{aka long unsigned int}'到'PDWORD'的转换无效 {aka long unsigned int*}'[-fppermissive]|

1780 |错误:初始化>'DWORDGetWindowThreadProcessIdHWND,PDWORD'[-fpPermissive]的参数2|

我只是不明白,但更奇怪的是这三个:

62 |错误:在“else”之前应为“}”|

70 |错误:“else”没有前面的“if”|

76 |错误:“else”没有前面的“if”|

我知道这些是什么意思,但显然在其他事情之前有一个}。在else之前有if语句

代码如下:

/*
Plants vs Zombies Game of the year edition trainer
*/

#include <iostream>
#include <Windows.h>
#include <string>
#include <ctime>

DWORD FindDmaAddy(int PointerLevel, HANDLE hProcHandle, DWORD Offsets[],DWORD BaseAddress); 
void WriteToMemory(HANDLE hProcHandle);

std::string GameName = "PlantsVsZombies";
LPCSTR LGameWindow = "Plants vs. Zombies";
std::string GameStatus;

bool IsGameAvail;
bool UpdateOnNextRun;

//Zon var.
bool SunStatus;
BYTE SunValue[] = {0xA3, 0X1C, 0X0, 0X0};
DWORD SunBaseAddress = {0x025A9E00};
DWORD SunOffsets[] = {0x5560, 0x768, 0x0};

//Geld var.
bool MoneyStatus;
BYTE MoneyValue[] = {0xA3, 0X1C, 0X0, 0X0};
DWORD MoneyBaseAddress = {0x02589E00};
DWORD MoneyOffsets[] = {0x28, 0x82C, 0x0};

int main()
{
HWND hGameWindow = NULL;
int timeSinceLastUpdate = clock();
int GameAvailTMR = clock();
int OnePressTMR = clock();
DWORD dwProcID = NULL;
HANDLE hProcHandle = NULL;
UpdateOnNextRun = true;
std::string sSunStatus = "UIT";
std::string sMoneyStatus = "UIT";

    while(!GetAsyncKeyState(VK_NUMPAD0));
    {
        if(clock() - GameAvailTMR > 100);
        {
            GameAvailTMR = clock();
            IsGameAvail = false;

            hGameWindow = FindWindow(NULL, LGameWindow);
            if(hGameWindow)
            {
                GetWindowThreadProcessId( hGameWindow, dwProcID);
                if(dwProcID != 0)
                {
                    hProcHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcID);
                    if(hProcHandle == INVALID_HANDLE_VALUE || hProcHandle == NULL);
                    {
                        GameStatus = "Plants vs. Zombies.exe kon niet worden geopend";
                    }
                    else
                    {
                       GameStatus = "Plants vs. Zombies.exe is geopend en klaar om gehackt te worden";
                       IsGameAvail = true;
                       system("color 0A");
                    }
                }
            }
            else
                {
                    GameStatus = "Kon het process ID niet vinden";
                    system("color 0C");
                }
        }
        else
        {
            GameStatus = "Plants vs. Zombies is niet gevonden";
            system("color 0C");
        }

        if(UpdateOnNextRun || clock() - timeSinceLastUpdate > 5000)
        {
            system("cls");
            std::cout << "---------------------------------------------------------------------------" << std::endl;
            std::cout << "                        Plants vs Zombies Trainer" << std::endl;
            std::cout << "---------------------------------------------------------------------------" << std::endl << std::endl;
            std::cout << "Game Status: " << GameStatus << std::endl << std::endl;
            std::cout <<"[NUMPAD1] Oneindig Zon: " << sSunStatus << std::endl;
            std::cout <<"[NUMPAD2] Oneindig Geld: " << sMoneyStatus << std::endl;
            std::cout <<"[NUMPAD0] Sluit de trainer";
        }
        if(IsGameAvail)
        {
            if(GetAsyncKeyState(VK_NUMPAD1))
            {
                OnePressTMR = clock();
                SunStatus = !SunStatus;
                UpdateOnNextRun = true;
                if(SunStatus)sSunStatus = "ON";
                else sSunStatus = "OFF";
            }
            else if(GetAsyncKeyState(VK_NUMPAD2))
            {
                OnePressTMR = clock();
                MoneyStatus = !MoneyStatus;
                UpdateOnNextRun = true;
                if(MoneyStatus)sMoneyStatus = "ON";
                else sMoneyStatus = "OFF";
        }
    }
    if(clock() - OnePressTMR > 400)
    {
        if(IsGameAvail)
        {
            //Zon
            if(GetAsyncKeyState(VK_NUMPAD1))
            {
                OnePressTMR = clock ();
                SunStatus = !SunStatus;
                UpdateOnNextRun = true;
                if(SunStatus)sSunStatus = "AAN";
                else sSunStatus = "UIT";
            }
            //Geld
            else if(GetAsyncKeyState(VK_NUMPAD2))
            {
                OnePressTMR = clock ();
                MoneyStatus = !MoneyStatus;
                UpdateOnNextRun = true;
                if(MoneyStatus)sMoneyStatus = "AAN";
                else sMoneyStatus = "UIT";
            }
        }
    }
    CloseHandle(hProcHandle);
    CloseHandle(hGameWindow);

    return ERROR_SUCCESS;


}

DWORD FindDmaAddy(int PointerLevel, HANDLE hProcHandle, DWORD Offsets[], DWORD BaseAddress)
{
    DWORD pointer = BaseAddress;
    DWORD pTemp;

DWORD pointerAddr;
for(int i = 0; i <PointerLevel; i++)
{
    if(i == 0)
    {
        ReadProcessMemory(hProcHandle, (LPCVOID)pointer, &pTemp, sizeof(pTemp), NULL);
    }

    pointerAddr = pTemp + Offsets[i];
    ReadProcessMemory(hProcHandle, (LPCVOID)pointerAddr, &pTemp, sizeof(pTemp), NULL);

}
}

void WriteToMemory(HANDLE hProcHandle)
{
    DWORD AddressToWrite;
    if(SunStatus)
{
    AddressToWrite = FindDmaAddy(2, hProcHandle, SunOffsets, SunBaseAddress);
    WriteProcessMemory(hProcHandle,(BYTE*)AddressToWrite, &SunValue, sizeof(SunValue), NULL);
}

if(MoneyStatus)
{
    AddressToWrite = FindDmaAddy(2, hProcHandle, MoneyOffsets, MoneyBaseAddress);
    WriteProcessMemory(hProcHandle,(BYTE*)AddressToWrite, &MoneyValue, sizeof(MoneyValue), NULL);
}
}

提前感谢

编译器的消息通常是正确的,您还应该阅读它的警告。你的代码实际上充满了愚蠢的小错误

    if(clock() - GameAvailTMR > 100);
结局;在此处关闭if,以便else不会附加到它

GetWindowThreadProcessId( hGameWindow, dwProcID);
当函数签名需要一个LPDWORD(即DWORD*)时,dwProcID是一个DWORD。只需编写GetWindowThreadProcessId hGameWindow和&dwProcID


不要忘记,当你在一行上看到错误时,也要阅读上面的一行。只需修复所有错误和警告,如果仍然存在问题,请返回此处

如果确定正在执行的操作,请编写类似DWORD*SUNBASEADRESS={0x025A9E00};的代码;。谢谢,为这些小错误感到抱歉我还是个乞丐,但我仍然有一些问题,我更改了您所说的更改:38 |警告:从NULL转换为非指针类型'DWORD{aka long unsigned int}'[-Wconversion null]| 145 |错误:此处不允许在“{”标记之前使用函数定义