在windows.h中,定义了一段代码:
其中定义了winsock.h,而如果在自己的文件中,再去定义winsock2.h,则会出现文件重定义错误;
解决方法: #define WIN32_LEAN_AND_MEAN
关于WIN32_LEAN_AND_MEAN
1. WIN32_LEAN_AND_MEAN用来排除一些不常用的API用于减小头文件大小,例如Cryptography, DDE, RPC, Shell, and Windows Sockets之类的头文件。
2. Windows.h头文件中包含的Winsock.h与Winsock2.h冲突,编译会报错,可以通过定义WIN32_LEAN_AND_MEAN解决。
3. 使用NOXXX宏定义排除指定的API,例如NOCOMM排除了串行通信API。