main.cppで定義されているようにこのシンボルが定義されていない理由を理解するのは難しいです。クラスを作成するときに未定義の外部シンボルが既に定義されています
メモリクラス:
#pragma once
#include "CrownIncludes.h"
class Memory {
public:
template<typename T>
inline T Read(std::uintptr_t ptrAddress) const
{
T val = T();
ReadProcessMemory(procHandle, (LPCVOID)ptrAddress, &val, sizeof(T), NULL);
return val;
}
private:
HANDLE procHandle = Settings::pHandle;
};
CrownIncludes.h
#pragma once
#include <Windows.h>
#include <TlHelp32.h>
#include <Psapi.h>
#include <iostream>
#include "Global.h"
using namespace Global;
#include "Crown.h"
#include "Memory.h"
Crown.cpp:
#include "CrownIncludes.h"
//#include "Memory.h"
void Crown::Setup() {
std::cout << "Crown loading..." << std::endl;
Memory* MemoryManager = new Memory();
DWORD LocalPlayer = 0x0;
MemoryManager->Read(0x02C8 + 0x0390, LocalPlayer);
std::cout << LocalPlayer << std::endl;
}
MAIN.CPP:
...
std::cout << "Success! (" << TargetProcess->GetHandle() << ")" << std::endl;
HANDLE pHandle = TargetProcess->GetHandle();
// Main
Crown::Setup();
...
コードは以下の通りです0
エラー:
Fehler LNK2001 Nicht aufgelöstes externes Symbol ""void * Global::Settings::pHandle" ([email protected]@[email protected]@3PEAXEA)" Crown.obj
メモリー* MemoryManager =新しいメモリをアンコメント();コードは動作します。 (私は、メモリクラスがpHandleを見つけることができないと思います)