任何知道如何解决LNK2019 - 未解析的外部符号,错误

Any idea how to solve the LNK2019 - unresolved external symbol, error?

本文关键字:外部 错误 符号 LNK2019 何解决 解决 任何知      更新时间:2023-10-16

我有这个烦人的错误,不知道如何解决问题;我正在使用Visual Studio 2015,社区版本。

我正在制作一个 C/C++ 控制台应用程序,该应用程序连接到 GTA5.exe并使用地址修改运行状况。

这是错误:

Error LNK2019 unresolved external symbol _main referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) GTAConsole

这是屏幕截图:http://prntscr.com/dzbpsa.png

GTAConsole.cpp code:

#include "stdafx.h" // Precompiled header
#include <Windows.h> // Allows window editing; setting text, etc
#include <iostream>
#include <TlHelp32.h>
#include <conio.h>
using namespace std; // Allows use of std::
__int64 GetModuleBaseAddress(LPCWSTR szProcessName, LPCWSTR szModuleName)
{
    HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
PROCESSENTRY32 pe32;
if (hSnap == INVALID_HANDLE_VALUE)
{
    return 0;
}
pe32.dwSize = sizeof(PROCESSENTRY32);
if (Process32First(hSnap, &pe32) == 0)
{
    CloseHandle(hSnap);
    return 0;
}
do
{
    if (lstrcmp(pe32.szExeFile, szProcessName) == 0)
    {
        int PID;
        PID = pe32.th32ProcessID;
        HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, PID);
        MODULEENTRY32 xModule;
        if (hSnap == INVALID_HANDLE_VALUE)
        {
            return 0;
        }
        xModule.dwSize = sizeof(MODULEENTRY32);
        if (Module32First(hSnap, &xModule) == 0)
        {
            CloseHandle(hSnap);
            return 0;
        }
        do
        {
            if (lstrcmp(xModule.szModule, szModuleName) == 0)
            {
                CloseHandle(hSnap);
                return (__int64)xModule.modBaseAddr;
            }
        } while (Module32Next(hSnap, &xModule));
        CloseHandle(hSnap);
        return 0;
    }
} while (Process32Next(hSnap, &pe32));
CloseHandle(hSnap);
return 0;
}
int Main()
{
wchar_t* WindowName = (L"Grand Theft Auto V");
wchar_t* GameTitle = (L"GTA5.exe");
HWND WindowHandle = FindWindow(NULL, WindowName);
__int64 BaseAddress = GetModuleBaseAddress(GameTitle, GameTitle);
DWORD ProcessID;
GetWindowThreadProcessId(WindowHandle, &ProcessID);
HANDLE pHandle = OpenProcess(PROCESS_ALL_ACCESS, 0, ProcessID);
std::cout << "[sucess]: GTAV.exe has been found!" << std::endl;
for (;;)
{
    if (GetAsyncKeyState(VK_NUMPAD1))
    {
        Sleep(250);
        float Health = 200;
        __int64 pPlayerInformationAddress = 0;
        DWORD SocialClubPlayerInformation = 0x01ED6D88;
        DWORD HealthOffset = 0x280;
        ReadProcessMemory(pHandle, (void*)(BaseAddress +      SocialClubPlayerInformation), &pPlayerInformationAddress, sizeof(pPlayerInformationAddress), NULL);
        ReadProcessMemory(pHandle, (void*)(pPlayerInformationAddress + HealthOffset), &Health, sizeof(Health), NULL);
        std::cout << Health << std::endl;
    }
}
Sleep(1);
}

如果有人能帮忙,那就太棒了!

更改行 int Main()通过main()