socket example code c++ windows visual-studio winapi networking

c++ - example - winsock client



errores de redefiniciĆ³n en WinSock2.h (2)

Después de un dolor de cabeza: me aseguré de que #include "Winsock2.h" antes de cualquier #include "windows.h" y "#include "Winsock.h" y esto resolvió el caso.

Revisé el recursivo incluye, vi los archivos de encabezado que incluyen (recursivamente) algunos #include "windows.h" y "#include "Winsock.h" y escribo un #include "Winsock2.h" en estos archivos, agregué #include "Winsock2.h" como el primero incluido.

Solo una cuestión de paciencia, mira incluye uno por uno y establece este orden, primero #include "Winsock2.h" luego #include "windows.h"

Esta pregunta ya tiene una respuesta aquí:

Incluyendo winsock2.h, en un archivo de un proyecto.

Obteniendo muchos errores en -
WinSock2.h(109) : error C2011: ''fd_set'' : ''struct'' type redefinition
con un correspondiente -
WinSock.h(54) : see declaration of ''fd_set''

No veo winsock.h incluido en ninguno de los encabezados.

¿Hay alguna configuración en el proyecto que pueda estar causando esto?

EDITAR
Sin embargo, estoy usando windows.h en otro archivo:
http://cboard.cprogramming.com/windows-programming/41212-strange-msvc-winsock2-compile-error.html

EDIT 2
En el encabezado tengo:

#include <winsock2.h> #include <iphlpapi.h> #include "/MyFiles/FileX.h" <-which #include <windows.h>


Mi conjetura sería el orden de los encabezados incluidos, es decir, incluir winsock2.h primero (con el primer significado antes de windows.h ) o definir WIN32_LEAN_AND_MEAN antes de incluir windows.h , lo que impide que windows.h incluya winsock v1.

#include <winsock2.h> #include <windows.h>

-o-

#define WIN32_LEAN_AND_MEAN #include <windows.h> #include <winsock2.h>