Есть ли необходимость использовать WS2_32.dll вместо wsock32.dll при сборке с MSVC9.0 - PullRequest
3 голосов
/ 16 февраля 2010

Я занимаюсь портированием некоторого кода для компиляции с MSVC 9.0, и один из моих коллег упомянул, что нам нужно будет ссылаться на WS2_32.dll, потому что теперь поддерживается только Winsock 2. Есть ли правда в этом? Наш код довольно старый и сильно зависит от wsock32.dll, поэтому это требование может стать серьезным препятствием для проекта.

Спасибо

1 Ответ

7 голосов
/ 17 февраля 2010

Пока вы не используете какие-либо специфические функции Winsock 2, у вас должно получиться отличное соединение с wsock32.dll. Старый Winsock 1.1 API не устарел. Winsock 2 - это расширение Winsock 1, а не его замена.

Поскольку Winsock 2 является просто расширением, программа, которая в настоящее время работает с wsock32.dll, все равно должна работать нормально при повторном связывании с ws2_32.dll. Лучшая причина этого не делать, если вам все еще нужно поддерживать стандартные системы Windows 95, поскольку Winsock 2 является загружаемым дополнением для этих систем. Winsock 2 был представлен в Windows 98 и Windows NT 4.

Существуют градусы для поддержки Winsock 2. Программа, использующая все новейшие функции, доступные в Windows 7, может не работать с Windows 95 даже с дополнением Winsock 2. Иногда верно и обратное: более новые стеки Winsock, например, убрали поддержку некоторых необработанных сокетов, например, в Windows 2000 и XP.

Итог, протестируйте на всех платформах, которые вы должны поддерживать.

...