0

我正在尝试为 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; 不同的链接,我没有发现这个错误,所以我被阻止了:(

4

0 回答 0