2013-07-22 5 views
5

Я смущен о двух вещах о winsock.Winsock2.h vs winsock2.h и wsock32.lib vs ws2_32.lib

Во-первых, в чем разница между включая Winsock2.h против winsock2.h (шапки «ж»)

Во-вторых, в чем разница между соединением с wsock32.lib с ws2_32.lib?

Я пробовал пару комбинаций, и они приводят к ошибкам во время компиляции. Может ли кто-нибудь объяснить мне логические рассуждения о том, что использовать?

Благодаря Ник

ответ

9

Там нет никакой разницы между Winsock2.h и winsock2.h. Имена файлов нечувствительны к регистру для типичных файловых систем Windows. Файл ws2_32.lib предназначен для Winsock 2, а wsock32.lib - для устаревшей, более старой версии.

+0

Приложение Winsock 2 (ws2_32.lib) является расширением для Winsock 1 (wsock32.dll). Программа, которая в настоящее время работает против wsock32.dll, должна по-прежнему работать нормально, когда перенаправляется на ws2_32.dll. –

+0

Пример многоадресной рассылки HawkNL (hawksoft.com/hawknl) не работает при соединении с ws2_32.lib, но будет работать с wsock32.lib. Однако, как только вы обновите # include, чтобы соответствовать новой библиотеке, становится и т. Д., Все снова начинает работать. –

3

Как показано здесь: https://technet.microsoft.com/en-us/library/cc958787.aspx, wsock32.dll и wsock.dll является задом-совместимость оболочкой для w2_32.dll

Вы можете использовать wsock32.dll для совместимости с Win95, или wsock.dll для совместимости с win3 .11 :) Но обычно они используются программами Win95 и Win3.11 для совместимости с win2K +

wsock32.lib и w2_32.lib содержат список экспортированных функций и элементов данных из динамических библиотек ссылок.

Примечание: некоторые различия между wsock32 и ws_32 могут быть неожиданными. Например, wsock32 будет запускать winsock версии 2.2 API, но для получения версии 2.0 вам понадобится w2_32.

Смежные вопросы