“AF

xiaoxiao2021-02-28  110

写了一个完成端口模型的小程序,编译运行跳出来一大堆重定义的错误,网上查一些资料是因为windows.h和WinSock2.h的包含关系。

将WinSock2.h写在windows.h前,问题就解决了。这两个头文件的包含关系不仅仅影响到直接包含两者的文件,还会影响到间接包含两者的情形。比如:a.h包含了windows.h,b.h包含了winsock2.h,如果在c.h中要引用a.h和b.h,那么a.h应该在b.h之前。这种顺序问题一般很难发现究竟是哪两个文件之间发生了顺序错误,所以极端解决方式就是在所有的#include前都加上#include<WinSock2.h>和#include<windows.h>。

另外,网上还看到另一种解决方式:定义宏WIN32_LEAN_AND_MEAN

属性》配置属性》c/c++》预处理器》预处理器定义:添加WIN32_LEAN_AND_MEAN

转载请注明原文地址: https://www.6miu.com/read-20559.html

最新回复(0)