C++ 在虚幻引擎4中使用Steamworks

C++ 在虚幻引擎4中使用Steamworks,c++,visual-c++,unreal-engine4,unreal-blueprint,steamworks-api,C++,Visual C++,Unreal Engine4,Unreal Blueprint,Steamworks Api,所以我开始为我的游戏实现Steamworks功能,一切都很顺利。我设法与steam API同步(我可以取得成就,并看到我在steam acc上玩游戏)。但是,当我想开始使用他们提供的一些功能时,我的引擎会说: error LNK2019: unresolved external symbol 谁能帮我解决这个问题?我的目标是在排行榜上阅读和保存分数。有什么好建议吗D 给出错误的代码示例: int MyCodeLibrary::TryGetScore() { if (SteamA

所以我开始为我的游戏实现Steamworks功能,一切都很顺利。我设法与steam API同步(我可以取得成就,并看到我在steam acc上玩游戏)。但是,当我想开始使用他们提供的一些功能时,我的引擎会说:

error LNK2019: unresolved external symbol
谁能帮我解决这个问题?我的目标是在排行榜上阅读和保存分数。有什么好建议吗D

给出错误的代码示例:

    int MyCodeLibrary::TryGetScore()
{
    if (SteamAPI_Init())
    {
        CSteamLeaderboards obj();
        obj().FindLeaderboard("test");
        obj().DownloadScores();
        return 0;
    }
    else
    {
        return 0;
    }
}
还尝试通过以下方式使用Online子系统:

void MyCodeLibrary::UpdateScoreInt(int score, FName board, APlayerController* PlayerController)
{
    OutputDebugStringA("Funkcja jest wywoływana");
    if (SteamAPI_Init())
    {
        OutputDebugStringA("Steam API działa");
        ULocalPlayer* LocalPlayer = Cast<ULocalPlayer>(PlayerController->Player);
        IOnlineSubsystem* ion = IOnlineSubsystem::Get(FName("Steam"));
        TSharedPtr<const FUniqueNetId> UserId = ion->GetIdentityInterface()->GetUniquePlayerId(LocalPlayer->GetControllerId());
        ion->GetLeaderboardsInterface();

        FOnlineLeaderboardWrite wrt;
        wrt.LeaderboardNames.Add(board);
        wrt.SetIntStat(TEXT("Score"), score);

        if (UserId.IsValid())
        {
            OutputDebugStringA("Mam UserID");
            ion->GetLeaderboardsInterface()->WriteLeaderboards(board, *UserId, wrt);
            printf("Odpalony score");
        }

    }
}
void mycdelibrary::UpdateScoreInt(int分数、FName板、APlayerController*PlayerController)
{
OutputDebugStringA(“Funkcja玩笑wywoływana”);
if(streamapi_Init())
{
输出数据(“蒸汽API działa”);
ULocalPlayer*LocalPlayer=Cast(PlayerController->Player);
IOnlineSubsystem*ion=IOnlineSubsystem::Get(FName(“Steam”);
TSharedPtr UserId=ion->GetIdentityInterface()->GetUniquePlayerId(LocalPlayer->GetControllerId());
离子->获取排行榜界面();
FOnlineLeaderboardWrite wrt;
书写排行榜名称。添加(董事会);
wrt.SetIntStat(文本(“分数”),分数);
if(UserId.IsValid())
{
OutputDebugStringA(“Mam用户ID”);
ion->GetLeaderboardsInterface()->WriteLeaderboards(board,*UserId,wrt);
printf(“Odpalony分数”);
}
}
}
因此,我在源代码中包含了库“steam\u api64.lib”,但在此之后,我收到了很多错误,这表明steam\u api.h中的所有内容都是错误的:/

我对它还很陌生,所以希望能得到进一步的帮助。以下是错误示例,显示:

error C2371: "S_CALLTYPE": redefinition; different basic types

error C4430: missing type specifier-int assumed. Note C++ does not support default-int

我是否包含了任何错误或遗漏的内容?Steam_api.h文件是直接从steamworks下载的,尚未修改。

我猜您没有链接到steamworks库中。你能不能至少让我们看看它丢失了什么符号?不幸的是,我无法访问项目ATM,但我可以明天再做。我肯定有Steam_api.h链接,但从未见过有人提到过任何其他需要:/n包括标题是不够的。你需要在一些库中进行链接。好吧,还有一些我以前从未做过的事情。你能解释一下我是如何做到这一点的吗?如果你使用的是VS,它是“项目设置”->“链接器”->“附加库”之类的。这并不能回答这个问题。若要评论或要求作者澄清,请在其帖子下方留下评论-您可以随时在自己的帖子上发表评论,一旦您拥有足够的声誉,您就可以在任何帖子上发表评论。我不能以作者的名义离开帖子。抱歉,我的失意,我只是想和大家分享我在这个问题上的进展,因为我也有同样的问题。请随意问新问题。你所面临的问题与原来帖子中所问的问题不同。