我正在嘗試使用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