10

Visual C ++ 2010でプロジェクトをコンパイルしていますが、Winsockの再定義に問題があります。

まず第一に私は得る:

syntax error : identifier 'SOCKADDR_STORAGE'

しかし、winsock、winsock2、またはws2tcpipを含めると、次のような多くのエラーが発生します。

error C2011: 'sockaddr' : 'struct' type redefinition 
error C2011: 'WSAData' : 'struct' type redefinition
error C2011: 'linger' : 'struct' type redefinition
4

1 に答える 1

24

あなたの問題は、 を含めるWindows.hことで、すでに も含めていることですwinsock.h。ここで、定義の一部を含めるwinsock2.hws2tcpip.h、再定義しようとするときに問題が発生しますwinsock.h

#define WIN32_LEAN_AND_MEANインクルードの前に使用するWindows.hことで、コンパイラが付属の多くの余分なものをインクルードするのを止めますWindows.h

于 2012-07-15T21:10:36.363 に答える