2012-07-15 19 views
10

Estoy compilando un proyecto en Visual C++ 2010, pero tengo problemas con algunas redefiniciones de Winsock.Errores de redefinición de Winsock

Ante todo me sale:

syntax error : identifier 'SOCKADDR_STORAGE' 

Pero si incluyo Winsock o winsock2 o ws2tcpip i obtener muchos errores como estos:

error C2011: 'sockaddr' : 'struct' type redefinition 
error C2011: 'WSAData' : 'struct' type redefinition 
error C2011: 'linger' : 'struct' type redefinition 
+0

¿Podría publicar una muestra de código? También intente agregar '#define WIN32_LEAN_AND_MEAN' – ctor

+0

Veamos el bloque' # include' del módulo ofensivo. – wallyk

+0

No tengo ningún lujo incluye, tengo estos // # include #include // # include Tengo que incluirlos en algunos archivos .cpp. – Cooker

Respuesta

20

Su problema es que al incluir Windows.h, usted está también ya incluye winsock.h. Es aquí donde el problema surge de que incluye winsock2.h o ws2tcpip.h intentará redefinir algunas de las definiciones en winsock.h

Mediante el uso de #define WIN32_LEAN_AND_MEAN antes de Windows.h incluyen detiene el compilador de la inclusión de una gran parte del material extra que viene con Windows.h