最近发现winsock2.h头文件与windows.h头文件在同时包含的时候会有问题,编译时会产生很多类型重复定义的错误。分析一下winsock.h、winsock2.h和windows.h三个头文件,可以发现:要解决这个问题,需要首先包含winsock2.h,然后再包括windows.h,要注意包含的顺序。
在Windows.h中,包含了winsock.h(winsock.h支持socket 1.1)。因此首先包含windows.h,然后再包含winsock2.h,显然会出现问题。