winsock ist veraltet, keine Warnungen
Ich bin versuchen, um eine UDP-multicast-socket-Programm mit VS2015 (C++ console application).
Bekam ich die folgende Fehlermeldung,
Error C4996 'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings mulitcast_listener
Habe ich versucht, hinzuzufügen _WINSOCK_DEPRECATED_NO_WARNINGS symbol, um meine Projekt-Einstellungen über "Projekt"->"Eigenschaften"->"Configuration properties"->"C/C++"->"Präprozessor"->"Preprocessor definitions"
.. Aber es sagt das gleiche.
Und dann habe ich versucht, das hinzufügen-symbol oben #include "stdafx.h"
wie
#define _WINSOCK_DEPRECATED_NO_WARNINGS 1
dann Keine(/sdl-) auf "Projekt"->"Eigenschaften"->"Configuration properties"->"C/C++"->allgemein->SDL prüft
jetzt bekomme ich eine Fehlermeldung, die besagt
Warning C4603 '_WINSOCK_DEPRECATED_NO_WARNINGS': macro is not defined or definition is different after precompiled header
Schließlich habe ich versucht zu implementieren
inet_pton(AF_INET, HELLO_GROUP, (PVOID *)(&mreq.imr_multiaddr.s_addr));
statt
mreq.imr_multiaddr.s_addr = inet_addr(HELLO_GROUP);
Brauche ich, um zu verstehen, warum die Fehler nicht behoben, auch nach dem hinzufügen der _WINSOCK... makro.
Vielen Dank im Voraus.
- Zum hinzufügen der
#define
vorstdafx.h
Sie möglicherweise nicht bewusst sein: en.wikipedia.org/wiki/Precompiled_header#stdafx.h .#include "stdafx.h"
sollte der erste sein Ding. Was passiert, wenn Sie den#define
direkt nach einschließlich stdafx aber vor der alle anderen beinhaltet? - Sie bauen erfolgreich.. vielen Dank für diese Informationen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie bereits angemerkt in den Kommentaren, die Lösung ist, um sicherzustellen, dass die Linie
gelegt wird, nach
aber bevor die anderen
#include
Aussagen.Während die Vorherige Beratung funktioniert, es ist das ignorieren der Zweck der
stdafx.h
. Die Idee ist, dass Sie Platz#include
- Anweisungen für die header-Dateien, die nicht Häufig ändern innenstdafx.h
um zu machen verwenden von vorkompilierten Headern. Sie sollten sich daher idealinnen
stdafx.h
vor anderen#include
Aussagen, die es betrifft, insbesondere vor, einschließlichwinsock2.h
oder anderen winsock-Header.