CAsyncSocket
вылетает мое приложение, если я удаляю CAsyncSocket
после звонка Connect
, но до OnConnect
обратный вызов был вызван. ASSERT(pSocket != NULL)
терпит неудачу в CAsyncSocket::DoCallBack
и приложение выходит.
Другими словами, если я создам CAsyncSocket
, попробуйте подключить его к серверу, а затем убить его, прежде чем это соединение или успешно или неудачно, у меня проблемы. Я могу избежать этого конкретного сбоя путем реализации OnConnect
и устанавливают флаг, который указывает, что попытка соединения завершена. Если флаг ложен, я знаю, что это не безопасно удалить.
Есть ли другие случаи, которые мне нужно проверить перед удалением объекта? Есть ли один способ проверить, безопасно ли это? Или мне нужно реализовать все обратные вызовы для любой операции, которую я мог бы инициировать (OnReceive
, OnSend
, OnConnect
) и убедитесь, что эти обратные вызовы были вызваны?
Пожалуйста, обратитесь к ИСПРАВЛЕНИЕ: Ошибка подтверждения, строка 475 из Sockcore.cpp, поддержка Microsoft статья для выполнения анализа.
Других решений пока нет …