#c
Вопрос:
Я использую код из своего старого проекта и хотел использовать этот код в одном из своих новых проектов. Поэтому я буквально скопировал и вставил тот же код в свое новое проектное решение. Он безупречно работает в старом источнике, но в новом он выдает мне следующий код ошибки:
Severity Code Description Project File Line Suppression state Error LNK2019 Reference to unresolved external symbol ""public: void __cdecl Hookxyz::Enable(void)" (?Enable@Hookxyz@@QEAAXXZ)" in function ""public: bool __cdecl rD3D11::HookD3D(void)" (?HookD3D@rD3D11@@QEAA_NXZ)". MyProject D:MyProjectMyProjectrD3D11.obj 1
На случай, если вам понадобится больше кода, чтобы помочь мне, вот как выглядит моя структура:
крюк.h:
#pragma once #include lt;Windows.hgt; class Hookxyz { public: BYTE* src{ nullptr }; BYTE originalBytes[30]{ 0 }; BYTE* dst{ nullptr }; uintptr_t len{ 0 }; uintptr_t* pTrampoline{ 0 }; bool bEnabled{ false }; void Enable(); };
hook.cpp:
#include "hook.h" void Hookxyz::Enable() { if (!bEnabled) { memcpy(originalBytes, src, len); * (uintptr_t*)pTrampoline = (uintptr_t)TrampHook64(src, dst, len); bEnabled = true; } }
rD3D11.h:
#pragma once #include "hook.h" class rD3D11 { public: Hookxyz presentHook; };
D3D11.cpp:
#include "hook.h" #include "rD3D11.h" bool rD3D11::HookD3D() { presentHook.Enable(); return true; }
В чем именно заключается проблема? Как я могу решить эту проблему?
Комментарии:
1. Скорее
hook.cpp
всего, он не был скомпилирован и не является частью вашего проекта Visual Studio.2. спасибо вам за ваш ответ, я дважды проверил его, да, это часть проекта, и он компилируется.
3. У вас есть два проекта?
4. Поскольку код работает в вашем старом проекте, сам код не является проблемой и поэтому не имеет значения. Проблема в настройках вашего проекта, но мы их не видим.
5. «да, это часть проекта, и он компилируется». Не могли бы вы добавить основу этого вывода к вопросу? Копирование (в виде текста) команды, используемой (системой сборки) для связывания проекта, является одним из способов поддержать этот вывод в вопросе.