C++ 和ws2def.h相关的一坨错误

一坨E0040 应输入标识符、应输入{  等等错误

原因是因为引用顺序:“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",

 

引用自:http://blog.chinaunix.net/uid-13614124-id-3654228.html

posted @ 2022-04-22 10:45  剑存古风  阅读(697)  评论(0编辑  收藏  举报