Ошибка вызова WSACleanup () убивает WSAStartup ()

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

Я не могу исправить DLL. Как избежать этой ситуации. Похоже, запустить использовать DLL и мой TCP-сервер в разных потоках не помогает

0

Решение

Как вы можете видеть в WSAStartup доктор, WSAStartup/WSACleanup выполнить внутренний подсчет ссылок. Поэтому все, что вам нужно сделать, это позвонить WSAStartup дважды.

Таким образом, когда ваша библиотека вызывает WSACleanup, это только уменьшит внутренний счетчик на один и не освободит все ресурсы.

1

Другие решения


По вопросам рекламы [email protected]