Использование Steamworks в Unreal Engine 4

Итак, я начал реализовывать функции 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;
    }
}

Также пробовал попасть в Steam с OnlineSubsystem вот так:

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");
        }

    }
}

person Avengar    schedule 23.02.2017    source источник
comment
Я полагаю, вы не делаете ссылки в какой-то библиотеке Steamworks. Вы можете хотя бы показать нам, какой именно символ отсутствует?   -  person arrowd    schedule 23.02.2017
comment
К сожалению, у меня нет доступа к проектному банкомату, но я могу сделать это завтра. Я точно знаю, что есть ссылка на Steam_api.h, но никогда не упоминал о других необходимых: /   -  person Avengar    schedule 23.02.2017
comment
Одного заголовка недостаточно. Вам нужно связать некоторые библиотеки.   -  person arrowd    schedule 23.02.2017
comment
Хорошо, тогда есть кое-что, чего я никогда раньше не делал. Вы можете объяснить, как я могу это сделать?   -  person Avengar    schedule 23.02.2017
comment
Если вы используете VS, это Настройки проекта - ›Компоновщик -› Дополнительные библиотеки или что-то в этом роде.   -  person arrowd    schedule 23.02.2017
comment
Я проверю, что Тай: 3   -  person Avengar    schedule 23.02.2017


Ответы (1)


Итак, я включил библиотеку steam_api64.lib в свой источник, но после этого я получил много ошибок, которые предполагают, что все в steam_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 и не подвергался изменениям.

person Adrian Rozlach    schedule 24.02.2017
comment
Это не дает ответа на вопрос. Чтобы критиковать или запрашивать разъяснения у автора, оставьте комментарий под его сообщением - вы всегда можете комментировать свои собственные сообщения, и когда у вас будет достаточная репутация, вы сможете комментировать любое сообщение. - person nothrow; 24.02.2017
comment
Я не мог оставить сообщение под автором. Извините за неудобства, я просто хотел поделиться своими успехами в решении проблемы, потому что у меня такая же. - person Adrian Rozlach; 24.02.2017
comment
Не стесняйтесь задавать новый вопрос. Проблема, с которой вы столкнулись, отличается от той, что была задана в исходном сообщении. - person nothrow; 24.02.2017