在编写Winsock程序时,经常会莫名其妙的遇到类似的编译错误:

 

c:\program files\microsoft visual studio\vc98\include\winsock2.h(148) : error C2011: 'timeval' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(204) : error C2011: 'hostent' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(217) : error C2011: 'netent' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(224) : error C2011: 'servent' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(231) : error C2011: 'protoent' : 'struct' type redefinition
c:\program files\microsoft visual studio\vc98\include\winsock2.h(316) : error C2011: 'in_addr' : 'struct' type redefinition
......还有很多

原因是windows.h中包含的是winsock.h,而不是winsock2.h。解决这个问题只要在所有的windows.h定义之前,先包含winsock2.h即可。

你可能感兴趣的:(在编写Winsock程序时,经常会莫名其妙的遇到类似的编译错误:)