无意中遇到很多和“ws2def.h”相关的编译错误,都是重定义引发的。为啥呢?
“winsock2.h”和"windows.h"的顺序:
“winsock2.h”定义了_WINSOCKAPI_,原意是不要编译''winsock.h"。如果"windows.h"在“winsock2.h”前面,那么会先include “winsock.h”编译,后再“winsock2.h”时遇到了重定义。
所以先include “winsock2.h”再include "windows.h"就可以避开这些重定义。
另外一条路:在include "windows.h"之前添加#define _WINSOCKAPI_。
这两个方法都是为了在编译“winsock2.h”的同时不要编译''winsock.h",水火不容啊~~~
阅读(6084) | 评论(0) | 转发(0) |