2012-07-15 19 views
10

Sto compilando un progetto in Visual C++ 2010, ma ho problemi con alcune ridefinizioni di Winsock.Errori di ridefinizione Winsock

Prima di tutto ottengo:

syntax error : identifier 'SOCKADDR_STORAGE' 

Ma se includo Winsock o winsock2 o ws2tcpip ottengo molti errori come questi:

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

Potresti postare un esempio di codice? Prova anche ad aggiungere '#define WIN32_LEAN_AND_MEAN' – ctor

+0

Vediamo il blocco' # include' dal modulo incriminato. – wallyk

+0

Non ho alcuna fantasia include, ho questi // # include #include // # include devo includerli in pochi file .cpp. – Cooker

risposta

20

tuo problema è che includendo Windows.h, sei anche già incluso winsock.h. E 'qui il tuo problema si pone come comprendente winsock2.h o ws2tcpip.h tenterà di ridefinire alcune delle definizioni in winsock.h

Utilizzando #define WIN32_LEAN_AND_MEAN prima Windows.h includerLa fermare il compilatore di includere un sacco di roba in più che viene fornito con Windows.h