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í:
- C ++ Redefinition Archivos de encabezado (winsock2.h) 15 respuestas
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>