使用Windows系统编程的时候,很多人都会遇到这样的问题,我们都是使用了系统的头文件,为什么还会报这么多错误,没错,微软就是这么不给力^_^。
说说这个问题的原因吧,造成这个问题是我们我们使用了winsock2.h,同时也使用了winsock.h,有些朋友会问,我没有包含过winsock.h,只包含了winsock2.h怎么会有问题呢?肯定是你包含的其他系统头文件中一部分包含了winsock2.h,一部分包含了winsock.h,其中windows.h就包含了winsock.h。那么怎么解决呢?很简单,在包含windows.h之前包含winsock2.h,像这样:
#include <winsock2.h>
#include <windows.h>
因为winsock2.h中做了特殊的宏定义,使得在其之后包含进来的winsock.h不起作用。这样一来世界立马清净了^_^。