define winsock deprecated no warnings

Я пытаюсь создать программу сокета multicast UDP с помощью VS2015 (консольное приложение на С++).

Я получил следующую ошибку:

Я попытался добавить символ _WINSOCK_DEPRECATED_NO_WARNINGS к моим настройкам проекта через «Проект» → «Свойства» → «Свойства конфигурации» → «C/С++» → «Препроцессор» → «Определения препроцессора» — Но все же он говорит то же самое.

И затем я попытался добавить символ выше #include «stdafx.h» как

#define _WINSOCK_DEPRECATED_NO_WARNINGS 1

а затем Нет (/sdl -) в «Проекте» → «Свойства» → «Свойства конфигурации» → «C/С++» → Общие → Проверка SDL

теперь я получаю сообщение об ошибке

Наконец, я попытался реализовать

Мне нужно понять, почему ошибка не была решена даже после добавления макроса _WINSOCK.

Я использую Visual Studio 2015 и пытаюсь скомпилировать код, который работал до обновления с VS 2013.

‘inet_addr’: используйте взамен inet_pton () или InetPton () или определите _WINSOCK_DEPRECATED_NO_WARNINGS

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

Решение

Строка ip может быть преобразована в in_addr структура с InetPton функция.
Используется так:

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

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

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

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

_T макрос мешаетconst char несовместим с PCWSTR» ошибка.

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

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

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

I am trying to create a UDP multicast socket program using VS2015 (C++ console application).

I got the following error,

I tried to add _WINSOCK_DEPRECATED_NO_WARNINGS symbol to my project settings via «Project»->»Properties»->»Configuration properties»->»C/C++»->»Preprocessor»->»Preprocessor definitions» .. But still it says the same.

And then I tried to add symbol above #include «stdafx.h» like

#define _WINSOCK_DEPRECATED_NO_WARNINGS 1

and then No(/sdl-) on «Project»->»Properties»->»Configuration properties»->»C/C++»->General->SDL checks

now I get a error message saying

Finally I tried to implement

I need to understand why the error didn’t resolved even after adding the _WINSOCK. macro.

Оцените статью