bind. Ты ведь изучил документацию?WSAGetLastError, согласно документации, вызывать нужно только когда bind возвращает SOCKET_ERROR. Только так ты можешь понять, что WSAGetLastError вернул код ошибки именно от bind.listen точно так же. Тебе надо просто лучше обрабатывать ошибки. У тебя реальная ошибка может быть где угодно выше по тексту и ты ее просто проглядел.bind.listen относительно кода WSAEINVAL.WSAEINVAL The socket has not been bound with bind.
Изначально всё работало нормально, но потом что-то изменил, не помню что, и всё работать перестало.
Никогда не видел смысла использования гита в своих проектах
WSAEINVAL. Это буквально означает что ты передаешь именно в listen неправильные аргументы. Второй аргумент у тебя не может быть неправильным. Остается вопрос к первому - к сокету.bind[?] ты ошибку тоже не проверяешь. Стоит это сделать. listen[?] есть код ошибки. Только ты его не запоминаешь и не проверяешь - это ошибка уже твоя.extern int32 GuardedMain( const TCHAR* CmdLine ) - внешняя точка входа для проекта, которая вызывается из недр UE, из точки входа конкретной ОС. Если у тебя есть доступ к репозиториям эпиков, то ты можешь это проверить. Скажем, в файле LaunchWindows.cpp. WinMain находится именно в этом файле.std::shared_ptr суть моего совета вот в чем.Protocol становится ресурсом, владение которым разделяется между SensorTask по прямому владению и Serial по владению через лямбду.std::weak_ptr на объект Protocol. Т.к. ты это все делаешь в конструкторе Protocol, тебе потребуется связь с порождающим твой объект умным указателем.std::enable_shared_from_this.Protocol гарантированно не будет меняться от самого вызова std::make_shared и до деструктора SensorTask.Кажется, варианты для меня это удалить пустой конструктор и запретить писать без аргументов
Или делать все в методе Init() который вызывается позже (очень не хочется, ведь для этого есть конструктор)
Protocol. SensorTask живет?Protocol лежит по значению. Его указатель будет стабилен пока живет владеющий им объект SensorTask.Thread<300>? Только не говори что это 300 потоков. :)
S.T.A.L.K.E.R. - GSC, Украина.
Metro: Exodus - 4A Games, Украина.
Ты точно ничего не напутал?