Я начал писать элемент управления ActiveX, который использует сокеты.Можно ли определить, вызван ли WSAStartup в процессе?
Приложения, использующие этот элемент управления, могут использовать или не использовать сокеты. Могу ли я контролировать, был ли вызов WSAStartup?
Если нет, позвоните. Небольшой тест показывает, что вызов WSAStartup несколько раз обновляется. Но что будет, если запрашивается другая версия winsock? это нарушит другие части приложения?
Не забудьте вызвать 'closesocket()' if 'socket()' успешно в 'WinsockInitialized()', иначе у вас есть утечка. –
хорошо пункт! исправлено это. – Matt
В любой момент не рекомендуется вызывать WSAStartup. Из MSDN: «Функция WSAStartup обычно приводит к загрузке DLL-файлов вспомогательных протоколов. В результате функция WSAStartup не должна вызываться из функции DllMain в DLL приложения. Это может потенциально вызвать взаимоблокировки« – czz