Ошибка LNK 2001
Я уже пол дня не могу решить эту проблему Помогите пожалуйста
1>main.obj : error LNK2001: неразрешенный внешний символ "public: unsigned int __thiscall Memory::getModule(unsigned long,char const *)" (?getModule@Memory@@QAEIKPBD@Z).
1>main.obj : error LNK2001: неразрешенный внешний символ "public: unsigned long __thiscall Memory::getProcess(char const *)" (?getProcess@Memory@@QAEKPBD@Z).
1>main.obj : error LNK2001: неразрешенный внешний символ "public: __thiscall Memory::~Memory(void)" (??1Memory@@QAE@XZ).
1>main.obj : error LNK2001: неразрешенный внешний символ "public: __thiscall Memory::Memory(void)" (??0Memory@@QAE@XZ).
1>fatal error LNK1120: неразрешенных внешних элементов: 4
// Memory.h
#pragma once
#include "include.h"
class Memory
{
public:
Memory();
~Memory();
template <class val>
val readMem(DWORD addr)
{
val x;
ReadProcessMemory(handle, (LPBYTE*)addr, &x, sizeof(x), NULL);
return x;
}
template <class val>
val writeMem(DWORD addr, val x)
{
WriteProcessMemory(handle, (LPBYTE*)addr, &x, sizeof(x), NULL);
return 0;
}
DWORD getProcess(const char*);
uintptr_t getModule(DWORD, const char*);
DWORD getAddress(DWORD, std::vector<DWORD>);
HANDLE handle;
};
// Memory.cpp
#include "Memory.h"
#include "include.h"
Memory::Memory()
{
handle = NULL;
}
Memory::~Memory()
{
CloseHandle(handle);
}
DWORD Memory::getProcess(const char* proc)
{
HANDLE hProcessId = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
DWORD process;
PROCESSENTRY32 pEntry;
pEntry.dwSize = sizeof(pEntry);
do
{
if (!strcmp(pEntry.szExeFile, proc))
{
process = pEntry.th32ProcessID;
CloseHandle(hProcessId);
handle = OpenProcess(PROCESS_ALL_ACCESS, false, process);
}
} while (Process32Next(hProcessId, &pEntry));
return process;
}
uintptr_t Memory::getModule(DWORD procId, const char* modName)
{
HANDLE hModule = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, procId);
MODULEENTRY32 mEntry;
mEntry.dwSize = sizeof(mEntry);
do
{
if (!strcmp(mEntry.szModule, modName))
{
CloseHandle(hModule);
return (DWORD)mEntry.hModule;
}
} while (Module32Next(hModule, &mEntry));
return 0;
}
DWORD Memory::getAddress(DWORD addr, std::vector<DWORD> vect)
{
for (unsigned int i = 0; i < vect.size(); i++)
{
ReadProcessMemory(handle, (BYTE*)addr, &addr, sizeof(addr), 0);
addr += vect[i];
}
return addr;
}
// include.h
#include <iostream>
#include <Windows.h>
#include <vector>
#include <TlHelp32.h>
#include "offsets.hpp"