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