Я пытаюсь создать программу сокета 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.