2016-04-18 8 views
8

Я использую Visual Studio 2015 и попытке скомпилировать код, который работал до того как я обновил с VS 2013.'inet_addr': Использование inet_pton() или InetPton() вместо того, чтобы определить или _WINSOCK_DEPRECATED_NO_WARNINGS

'inet_addr' Использование inet_pton() или InetPton() вместо того, чтобы определить или _WINSOCK_DEPRECATED_NO_WARNINGS

partner.sin_addr.s_addr = inet_addr(ip.c_str()); 

Я пытался использовать функции, упомянутые, но они были не определены. Я попытался определить макрос во многих разных местах, но ничего не произошло. Другой поток сказал, что я должен включить Ws2tcpip.h вместо WinSock2 & добавить Ws2_32.lib. У меня уже есть библиотека, и когда я использовал include, ничего не произошло. Что происходит?!

+0

Может ли это бизнес-модель Microsoft не быть обратно совместимой между различными Visual Studios? Исходя из python, это просто безумие –

ответ

8

IP-строка может быть преобразована в структуру in_addr с функцией InetPton. Он используется так:

InetPton(AF_INET, strIP, &ipv4addr) 

Вам необходимо включить заголовочный файл «Ws2tcpip.h», использовать библиотеку «Ws2_32.lib» и DLL «ws2_32.dll».

0

убедитесь, что вы определили _WINSOCK_DEPRECATED_NO_WARNINGS перед включением.

+0

это должно быть в части комментария. –

+0

Я не согласен с комментарием @ V-rund Puro-hit. Определение _WINSOCK_DEPRECATED_NO_WARNINGS - действительно самый простой способ заставить его работать. Никакого изменения вашего исходного кода не требуется, никаких других библиотек не требуется. –

3

Вы можете попробовать

#pragma предупреждение (отключить: 4996)

для использования inet_addr().

3

Просто, чтобы сделать преобразование прозрачным. Скажем, у вас есть код, используя устаревшие inet_addr как в этом примере:

RecvAddr.sin_addr.s_addr = inet_addr("192.168.1.1"); 

Это может быть преобразован в новый InetPton следующим образом:

InetPton(AF_INET, _T("192.168.1.1"), &RecvAddr.sin_addr.s_addr); 

_T макрос предотвращает "константный символ несовместимый с PCWSTR "ошибка.

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