Программа вылетает после обработки SteamAPI_RunCallbacks(). [MinGW+SteamSDK]
Я пытаюсь использовать результаты вызова CCallResult из библиотеки Steam. Взял самый простой пример отсюда для нахождения числа активных игроков SteamUserStats()->GetNumberOfCurrentPlayers(). Скомпилированная программа вылетает после успешной обработки вызова. После вылета я вижу результат (число активных игроков) в текстовом файле.
void CGameManager::OnGetNumberOfCurrentPlayers( NumberOfCurrentPlayers_t *pCallback, bool bIOFailure )
{
if ( bIOFailure || !pCallback->m_bSuccess )
{
printf( "NumberOfCurrentPlayers_t failed!\n" );
return;
}
printf( "Number of players currently playing: %ld\n", pCallback->m_cPlayers );
//СОХРАНИТЬ ДАННЫЕ
FILE* fsav;
fsav=fopen("Error.log","w");
fprintf(fsav,"Number of players currently playing: %ld\n", pCallback->m_cPlayers);
fclose(fsav);
}
Использую компилятор MinGw под Windows отсюда скорее всего и проблемы. В интернете находил пару человек которые тоже утыкались в эту проблему. Информации нашёл крайне мало - буквально пару страниц. Вобщем варианта предлагалось два - использовать C Wrapper или использовать компилятор Visual Studio. Пробовал и другие вызовы например SteamMatchmaking()->RequestLobbyList() с тем же результатом. Также пробовал использовать "steam_api_flat.h" что в случае с вызовами не принесло положительного результата. Зато при переходе на "steam_api_flat.h" перестали вылетать функции возвращающие CSteamID - например GetFriendByIndex(int iFriend, int iFriendFlags).