Итак, код, который я использовал для получения Steam ID пользователя:
CSteamID uid = SteamUser()->GetSteamID();
uint64 pid = uid.ConvertToUint64();
std::ostringstream sin;
sin << pid;
std::string s = sin.str();
return s.c_str();
Это работает просто отлично, но когда пользователь не вошел в Steam, происходит сбой.
Нарушение доступа — код c0000005 (первый / второй шанс недоступен)
Предоставляет ли Steam функцию, с помощью которой я могу проверить, вошел ли пользователь в систему, прежде чем запускать код, который зависит от пользователя, вошедшего в систему? Или есть какой-то блок try / catch, который я могу использовать здесь, чтобы убедиться, что он не ломается и возвращает false, если пользователь не вошел в систему?
Благодаря @ Lightning Racis на орбите. Простая проверка nullptr исправила это.
if(SteamUser() == nullptr)
return false;