我正在尝试使用VS2015(C++控制台应用程序)创建一个UDP组播套接字程序。winsock不推荐使用警告
我有以下错误,
Error C4996 'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings mulitcast_listener
我试图通过 “工程” 符号添加_WINSOCK_DEPRECATED_NO_WARNINGS到我的项目设置 - > “属性” - > “配置属性” - > “C/C++” - >“预处理器” - >“预处理器定义” ..但它仍然表示相同。
然后我试图添加上述#包括符号 “stdafx.h中” 像
的#define _WINSOCK_DEPRECATED_NO_WARNINGS 1
然后否(/ sdl-)上“项目“ - >”属性“ - >”配置属性“ - >”C/C++“ - >常规 - > SDL检查
现在我收到一条错误消息,说
Warning C4603 '_WINSOCK_DEPRECATED_NO_WARNINGS': macro is not defined or definition is different after precompiled header
最后,我试图执行的
inet_pton(AF_INET, HELLO_GROUP, (PVOID *)(&mreq.imr_multiaddr.s_addr));
代替
mreq.imr_multiaddr.s_addr = inet_addr(HELLO_GROUP);
我需要了解为什么没有得到解决的错误,甚至添加_WINSOCK后...宏。
在此先感谢。
关于在'stdafx.h'之前添加'#define',你可能没有意识到这一点:https://en.wikipedia.org/wiki/Precompiled_header#stdafx.h。 '#include“stdafx.h”'应该是第一件事。如果在包含stdafx之后但在所有其他包含之前放置'#define',会发生什么? –
它建立成功..非常感谢你的这些信息 – kar