У меня есть приложение, которое работает на TCP-сервере. Для инициализации TCP я запускаю WSAStartup()
, Тогда мне нужно загрузить стороннюю DLL. Dll также выполняет некоторую работу по TCP и имеет некоторую ошибку — он работает WSACleanup()
без бега WSAStartup()
, Эта ошибка тормозит мой TCP-сервер, так как DLL WSACleanup()
убивает это.
Я не могу исправить DLL. Как избежать этой ситуации. Похоже, запустить использовать DLL и мой TCP-сервер в разных потоках не помогает
Как вы можете видеть в WSAStartup
доктор, WSAStartup
/WSACleanup
выполнить внутренний подсчет ссылок. Поэтому все, что вам нужно сделать, это позвонить WSAStartup
дважды.
Таким образом, когда ваша библиотека вызывает WSACleanup
, это только уменьшит внутренний счетчик на один и не освободит все ресурсы.