我正在尝试为 bakkesmod 编写一个小插件,因为我很生气。我观看了关于这个主题的唯一 2 个视频,但是......它不起作用,我对每个 void 都有这个错误 - >> 严重性代码描述项目文件行抑制状态错误 LNK2001 未解析的外部符号“__declspec(dllimport) public : void __thiscall GameWrapper::HookEvent(class std::basic_string<char,struct std::char_traits,class std::allocator >,class std::function<void __cdecl(class std::basic_string<char,struct std:: char_traits,class std::allocator >)>)" (_ imp?HookEvent@GameWrapper@@QAEXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$function@$$A6AXV?$basic_string@DU?$char_traits @D@std@@V?$allocator@D@2@@std@@@Z@3@@Z) TagName C:\Users\leodu\source\repos\TagName\TagName\TrollTagName.obj 1
这是我的代码。
TroolTagName.cpp(不判断名称)
#include "TrollTagName.h"
BAKKESMOD_PLUGIN(TroolTagName, "Trool Tag Name", "1.0", PERMISSION_ALL)
void TroolTagName::onLoad()
{
this->Log("This is my first Bakkesmod Plugin");
this->LoadHooks();
}
void TroolTagName::onUnload()
{
}
void TroolTagName::LoadHooks()
{
gameWrapper->HookEvent("Function TAGame.GameEvent_Soccar_TA.EventMatchEnded", std::bind(&TroolTagName::GameEndedEvent, this, std::placeholders::_1));
gameWrapper->HookEvent("Function TAGame.AchievementManager_TA.HandleMatchEnded", std::bind(&TroolTagName::GameEndedEvent, this, std::placeholders::_1));
}
void TroolTagName::GameEndedEvent(std::string name)
{
cvarManager->executeCommand("load_freeplay");
}
void TroolTagName::Log(std::string msg)
{
cvarManager->log("TroolTagName: " + msg);
}
工具标签名称.h
#include "bakkesmod\plugin\bakkesmodplugin.h"
#pragma comment(lib, "pluginsdk.lib")
class TroolTagName : public BakkesMod::Plugin::BakkesModPlugin
{
public:
virtual void onLoad();
virtual void onUnload();
void LoadHooks();
void GameEndedEvent(std::string name);
private:
void Log(std::string msg);
};
该项目和一个动态库 dll 项目。
我尝试在 void 之前添加 __declspec (dllexport) 但是......我收到了这个错误 - >> redefinition; 不同的链接,我没有发现这个错误,所以我被阻止了:(