【发布时间】:2017-02-23 19:42:41
【问题描述】:
所以我开始为我的游戏实现 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;
}
}
还尝试像这样使用 OnlineSubsystem 进入 Steam:
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");
}
}
}
【问题讨论】:
-
我想您没有在某些 Steamworks 库中进行链接。你能至少告诉我们它缺少什么符号吗?
-
不幸的是,我无法使用项目 ATM,但我明天可以使用。我确定有 Steam_api.h 链接,但从未见过提到任何其他需要:/
-
仅包含标题是不够的。您需要链接一些库。
-
好的,那么有一些我以前从未做过的事情。你能解释一下我该怎么做吗?
-
如果你用的是VS,就是“项目设置”->“链接器”->“附加库”之类的。
标签: c++ visual-c++ unreal-engine4 unreal-blueprint steamworks-api